opengist/README.md

113 lines
3.5 KiB
Markdown
Raw Normal View History

# Opengist
2023-09-25 16:57:47 +00: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.
[Documentation](/docs) • [Demo](https://opengist.thomice.li)
![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 16:57:47 +00:00
[![Go CI](https://github.com/thomiceli/opengist/actions/workflows/go.yml/badge.svg)](https://github.com/thomiceli/opengist/actions/workflows/go.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/thomiceli/opengist)](https://goreportcard.com/report/github.com/thomiceli/opengist)
## Features
* Create public, unlisted or private snippets
2023-09-25 16:57:47 +00:00
* [Init](/docs/usage/init-via-git.md) / Clone / Pull / Push snippets **via Git** over HTTP or SSH
* Syntax highlighting ; markdown & CSV support
2024-01-04 16:12:31 +00:00
* Search code in snippets ; browse users snippets, likes and forks
* Embed snippets in other websites
* Revisions history
* Like / Fork snippets
* Download raw files or as a ZIP archive
2024-01-04 16:12:31 +00:00
* OAuth2 login with GitHub, GitLab, Gitea, and OpenID Connect
2023-04-28 18:31:10 +00:00
* Restrict or unrestrict snippets visibility to anonymous users
* Docker support
2023-09-25 16:57:47 +00:00
* [More...](/docs/index.md#features)
2023-09-25 16:57:47 +00:00
## Quick start
### With Docker
2023-07-17 02:16:08 +00:00
Docker [images](https://github.com/thomiceli/opengist/pkgs/container/opengist) are available for each release :
2023-06-07 18:50:30 +00:00
```shell
2023-09-25 16:57:47 +00:00
docker pull ghcr.io/thomiceli/opengist:1
```
It can be used in a `docker-compose.yml` file :
1. Create a `docker-compose.yml` file with the following content
2023-04-12 10:50:47 +00:00
2. Run `docker compose up -d`
3. Opengist is now running on port 6157, you can browse http://localhost:6157
```yml
version: "3"
services:
opengist:
image: ghcr.io/thomiceli/opengist:1
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 10:50:36 +00: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
```
### 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-01-06 13:36:03 +00:00
wget https://github.com/thomiceli/opengist/releases/download/v1.6.1/opengist1.6.1-linux-amd64.tar.gz
2024-01-06 13:36:03 +00:00
tar xzvf opengist1.6.1-linux-amd64.tar.gz
cd opengist
chmod +x opengist
./opengist # with or without `--config config.yml`
```
2023-10-15 06:14:34 +00:00
Opengist is now running on port 6157, you can browse http://localhost:6157
### From source
Requirements : [Git](https://git-scm.com/downloads) (2.28+), [Go](https://go.dev/doc/install) (1.21+), [Node.js](https://nodejs.org/en/download/) (16+)
```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
2023-04-17 19:57:03 +00:00
2023-09-25 16:57:47 +00:00
## Documentation
2023-04-17 19:57:03 +00:00
2023-09-25 16:57:47 +00:00
The documentation is available in [/docs](/docs) directory.
2023-09-15 21:56:14 +00:00
## License
2023-09-25 16:57:47 +00:00
Opengist is licensed under the [AGPL-3.0 license](/LICENSE).