2023-04-10 22:52:52 +02:00
|
|
|
# Opengist
|
|
|
|
|
2023-09-25 18:57:47 +02:00
|
|
|
<img height="108px" src="https://raw.githubusercontent.com/thomiceli/opengist/a9dd531f676d01b93bb6bd70751a69382ca563b0/public/opengist.svg" alt="Opengist" align="right" />
|
|
|
|
|
|
|
|
Opengist is a **self-hosted** pastebin **powered by Git**. All snippets are stored in a Git repository and can be
|
|
|
|
read and/or modified using standard Git commands, or with the web interface.
|
|
|
|
It is similiar to [GitHub Gist](https://gist.github.com/), but open-source and could be self-hosted.
|
|
|
|
|
2024-05-05 00:52:03 +02:00
|
|
|
[Documentation](/docs) • [Discord](https://discord.gg/9Pm3X5scZT) • [Demo](https://demo.opengist.io)
|
2023-09-25 18:57:47 +02:00
|
|
|
|
|
|
|
|
2023-04-10 22:52:52 +02:00
|
|
|
![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/thomiceli/opengist?sort=semver)
|
|
|
|
![License](https://img.shields.io/github/license/thomiceli/opengist?color=blue)
|
2023-09-25 18:57:47 +02:00
|
|
|
[![Go CI](https://github.com/thomiceli/opengist/actions/workflows/go.yml/badge.svg)](https://github.com/thomiceli/opengist/actions/workflows/go.yml)
|
2023-05-27 20:20:20 +02:00
|
|
|
[![Go Report Card](https://goreportcard.com/badge/github.com/thomiceli/opengist)](https://goreportcard.com/report/github.com/thomiceli/opengist)
|
2023-04-10 22:52:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
2023-09-02 03:58:37 +02:00
|
|
|
* Create public, unlisted or private snippets
|
2023-09-25 18:57:47 +02:00
|
|
|
* [Init](/docs/usage/init-via-git.md) / Clone / Pull / Push snippets **via Git** over HTTP or SSH
|
2023-04-10 22:52:52 +02:00
|
|
|
* Syntax highlighting ; markdown & CSV support
|
2024-01-04 17:12:31 +01:00
|
|
|
* Search code in snippets ; browse users snippets, likes and forks
|
|
|
|
* Embed snippets in other websites
|
|
|
|
* Revisions history
|
2023-04-10 22:52:52 +02:00
|
|
|
* Like / Fork snippets
|
|
|
|
* Download raw files or as a ZIP archive
|
2024-01-04 17:12:31 +01:00
|
|
|
* OAuth2 login with GitHub, GitLab, Gitea, and OpenID Connect
|
2023-04-28 20:31:10 +02:00
|
|
|
* Restrict or unrestrict snippets visibility to anonymous users
|
2023-04-10 22:52:52 +02:00
|
|
|
* Docker support
|
2023-09-25 18:57:47 +02:00
|
|
|
* [More...](/docs/index.md#features)
|
2023-04-10 22:52:52 +02:00
|
|
|
|
2023-09-25 18:57:47 +02:00
|
|
|
## Quick start
|
2023-04-10 22:52:52 +02:00
|
|
|
|
|
|
|
### With Docker
|
|
|
|
|
2023-07-17 04:16:08 +02:00
|
|
|
Docker [images](https://github.com/thomiceli/opengist/pkgs/container/opengist) are available for each release :
|
2023-04-10 22:52:52 +02:00
|
|
|
|
2023-06-07 20:50:30 +02:00
|
|
|
```shell
|
2024-04-03 02:06:05 +02:00
|
|
|
docker pull ghcr.io/thomiceli/opengist:1.7
|
2023-04-10 22:52:52 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
It can be used in a `docker-compose.yml` file :
|
|
|
|
|
|
|
|
1. Create a `docker-compose.yml` file with the following content
|
2023-04-12 12:50:47 +02:00
|
|
|
2. Run `docker compose up -d`
|
2023-04-10 22:52:52 +02:00
|
|
|
3. Opengist is now running on port 6157, you can browse http://localhost:6157
|
|
|
|
|
|
|
|
```yml
|
|
|
|
version: "3"
|
|
|
|
|
|
|
|
services:
|
|
|
|
opengist:
|
2024-04-03 02:06:05 +02:00
|
|
|
image: ghcr.io/thomiceli/opengist:1.7
|
2023-04-10 22:52:52 +02:00
|
|
|
container_name: opengist
|
|
|
|
restart: unless-stopped
|
|
|
|
ports:
|
|
|
|
- "6157:6157" # HTTP port
|
|
|
|
- "2222:2222" # SSH port, can be removed if you don't use SSH
|
|
|
|
volumes:
|
2023-06-18 12:50:36 +02:00
|
|
|
- "$HOME/.opengist:/opengist"
|
|
|
|
```
|
|
|
|
|
|
|
|
You can define which user/group should run the container and own the files by setting the `UID` and `GID` environment variables :
|
|
|
|
|
|
|
|
```yml
|
|
|
|
services:
|
|
|
|
opengist:
|
|
|
|
# ...
|
|
|
|
environment:
|
|
|
|
UID: 1001
|
|
|
|
GID: 1001
|
2023-04-10 22:52:52 +02:00
|
|
|
```
|
|
|
|
|
2023-09-26 15:13:58 +02:00
|
|
|
### Via binary
|
|
|
|
|
|
|
|
Download the archive for your system from the release page [here](https://github.com/thomiceli/opengist/releases/latest), and extract it.
|
|
|
|
|
|
|
|
```shell
|
|
|
|
# example for linux amd64
|
2024-05-05 00:52:03 +02:00
|
|
|
wget https://github.com/thomiceli/opengist/releases/download/v1.7.2/opengist1.7.2-linux-amd64.tar.gz
|
2023-09-26 15:13:58 +02:00
|
|
|
|
2024-05-05 00:52:03 +02:00
|
|
|
tar xzvf opengist1.7.2-linux-amd64.tar.gz
|
2023-09-26 15:13:58 +02:00
|
|
|
cd opengist
|
|
|
|
chmod +x opengist
|
|
|
|
./opengist # with or without `--config config.yml`
|
|
|
|
```
|
|
|
|
|
2023-10-15 08:14:34 +02:00
|
|
|
Opengist is now running on port 6157, you can browse http://localhost:6157
|
|
|
|
|
2023-04-10 22:52:52 +02:00
|
|
|
### From source
|
|
|
|
|
2024-05-05 00:38:06 +02:00
|
|
|
Requirements: [Git](https://git-scm.com/downloads) (2.28+), [Go](https://go.dev/doc/install) (1.22+), [Node.js](https://nodejs.org/en/download/) (16+), [Make](https://linux.die.net/man/1/make) (optional, but easier)
|
2023-04-10 22:52:52 +02:00
|
|
|
|
|
|
|
```shell
|
|
|
|
git clone https://github.com/thomiceli/opengist
|
|
|
|
cd opengist
|
|
|
|
make
|
|
|
|
./opengist
|
|
|
|
```
|
|
|
|
|
|
|
|
Opengist is now running on port 6157, you can browse http://localhost:6157
|
|
|
|
|
2024-02-19 01:58:50 +01:00
|
|
|
---
|
|
|
|
|
|
|
|
To create and run a development environment, see [run-development.md](/docs/contributing/run-development.md).
|
2023-04-17 21:57:03 +02:00
|
|
|
|
2023-09-25 18:57:47 +02:00
|
|
|
## Documentation
|
2023-04-17 21:57:03 +02:00
|
|
|
|
2023-09-25 18:57:47 +02:00
|
|
|
The documentation is available in [/docs](/docs) directory.
|
2023-09-15 23:56:14 +02:00
|
|
|
|
|
|
|
|
2023-04-10 22:52:52 +02:00
|
|
|
## License
|
|
|
|
|
2023-09-25 18:57:47 +02:00
|
|
|
Opengist is licensed under the [AGPL-3.0 license](/LICENSE).
|