MCPcopy
hub / github.com/thomiceli/opengist

github.com/thomiceli/opengist @v1.13.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.13.1 ↗
1,101 symbols 4,753 edges 170 files 186 documented · 17%
README

Opengist

Opengist

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 similar to GitHub Gist, but open-source and could be self-hosted.

Home PageDocumentationDiscordDemo

GitHub release (latest SemVer) License Go CI Go Report Card Translate

Features

  • Create public, unlisted or private snippets
  • Init / Clone / Pull / Push snippets via Git over HTTP or SSH
  • Syntax highlighting ; markdown & CSV support
  • Search code in snippets; browse users snippets, likes and forks
  • Add topics to snippets
  • Embed snippets in other websites
  • Revisions history
  • Like / Fork snippets
  • Download raw files or as a ZIP archive
  • OAuth2 login with GitHub, GitLab, Gitea, and OpenID Connect
  • Restrict or unrestrict snippets visibility to anonymous users
  • Docker support / Helm Chart
  • More...

Quick start

With Docker

Docker images are available for each release :

docker pull ghcr.io/thomiceli/opengist:1.13

It can be used in a docker-compose.yml file :

  1. Create a docker-compose.yml file with the following content
  2. Run docker compose up -d
  3. Opengist is now running on port 6157, you can browse http://localhost:6157
services:
  opengist:
    image: ghcr.io/thomiceli/opengist:1.13
    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:
      - "$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 :

services:
  opengist:
    # ...
    environment:
      UID: 1001
      GID: 1001

Via binary

Download the archive for your system from the release page here, and extract it.

# example for linux amd64
wget https://github.com/thomiceli/opengist/releases/download/v1.13.1/opengist1.13.1-linux-amd64.tar.gz

tar xzvf opengist1.13.1-linux-amd64.tar.gz
cd opengist
chmod +x opengist
./opengist # with or without `--config config.yml`

Opengist is now running on port 6157, you can browse http://localhost:6157

From source

Requirements: Git (2.28+), Go (1.23+), Node.js (16+), Make (optional, but easier)

git clone https://github.com/thomiceli/opengist
cd opengist
make
./opengist

Opengist is now running on port 6157, you can browse http://localhost:6157


To create and run a development environment, see run-development.md.

Documentation

The documentation is available at https://opengist.io/ or in the /docs directory.

License

Opengist is licensed under the AGPL-3.0 license.

Extension points exported contracts — how you extend this code

Provider (Interface)
(no doc) [4 implementers]
internal/auth/oauth/provider.go
RenderedFile (Interface)
(no doc) [3 implementers]
internal/render/render.go
Indexer (Interface)
(no doc) [2 implementers]
internal/index/indexer.go
Handler (FuncType)
(no doc)
internal/web/server/handler.go
CallbackProvider (Interface)
(no doc) [4 implementers]
internal/auth/oauth/provider.go
Middleware (FuncType)
(no doc)
internal/web/server/handler.go
AuthInfoProvider (Interface)
(no doc) [2 implementers]
internal/auth/auth.go

Core symbols most depended-on inside this repo

Request
called by 232
internal/web/test/server.go
ErrorRes
called by 188
internal/web/context/context.go
SetData
called by 177
internal/web/context/context.go
Register
called by 119
internal/web/test/server.go
Login
called by 87
internal/web/test/server.go
Tr
called by 81
internal/web/context/context.go
Search
called by 80
internal/index/indexer.go
ErrorJson
called by 77
internal/web/context/context.go

Shape

Function 683
Method 302
Struct 100
TypeAlias 6
Interface 5
FuncType 3
Class 2

Languages

Go97%
TypeScript3%

Modules by API surface

internal/db/gist.go84 symbols
internal/git/commands.go36 symbols
internal/web/context/context.go27 symbols
internal/web/server/middlewares.go26 symbols
internal/web/handlers/api/v1/gist_forks_test.go25 symbols
internal/db/user.go25 symbols
internal/web/handlers/git/http.go19 symbols
internal/render/markdown_svg.go19 symbols
internal/web/handlers/api/v1/gist_like_test.go17 symbols
internal/web/handlers/api/v1/common_test.go17 symbols
internal/index/indexer.go17 symbols
internal/db/access_token.go17 symbols

Dependencies from manifests, versioned

filippo.io/edwards25519v1.2.0 · 1×
github.com/Azure/go-ntlmsspv0.1.1 · 1×
github.com/Kunde21/markdownfmt/v3v3.1.0 · 1×
github.com/alecthomas/chroma/v2v2.26.1 · 1×
github.com/andybalholm/brotliv1.2.1 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/bits-and-blooms/bitsetv1.24.5 · 1×
github.com/blevesearch/bleve/v2v2.6.0 · 1×
github.com/blevesearch/bleve_index_apiv1.3.12 · 1×
github.com/blevesearch/geov0.2.5 · 1×
github.com/blevesearch/go-faissv1.1.4 · 1×

Datastores touched

(mysql)Database · 1 repos
opengist_dbDatabase · 1 repos
opengist_testDatabase · 1 repos
opengistDatabase · 1 repos
opengist_dbDatabase · 1 repos
opengist_testDatabase · 1 repos

For agents

$ claude mcp add opengist \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact