MCPcopy Index your code
hub / github.com/Forceu/Gokapi

github.com/Forceu/Gokapi @v2.2.4 sqlite

repository ↗ · DeepWiki ↗ · release v2.2.4 ↗
2,911 symbols 12,565 edges 196 files 854 documented · 29%
README

Gokapi

Documentation Status Go Report Card Coverage Docker Pulls

Gokapi is a modern, self-hosted alternative to Firefox Send that puts you in control of your file sharing. Built with Go, it combines simplicity with powerful features like automatic file expiration, end-to-end encryption, and flexible cloud storage support.

Available for:

Features

  • Expiring file shares: Automatically removed after a set number of downloads or days
  • User management with roles: Fine-grained permission control, only registered users can upload
  • File requests: A shareable URL lets external parties upload files, visible only to the URL’s creator
  • File deduplication: Identical files use no extra space
  • Cloud storage support: AWS S3 (or S3 compatible like Backblaze B2), optional
  • Built-in encryption: Including end-to-end encrypted uploads
  • OpenID Connect support: Integrate with identity providers like Authelia or Keycloak
  • REST API: For automation and integration into other systems
  • Customizable UI: Adjust look and feel with custom CSS and JavaScript

Getting Started

You can deploy Gokapi in seconds using Docker or directly on your system.

Installation Guide
Usage Instructions

Want to give it a try?

Start Gokapi instantly with Docker:

docker run --rm \
  --name gokapi \
  -v gokapi-data:/app/data \
  -v gokapi-config:/app/config \
  -p 127.0.0.1:53842:53842 \
  -e TZ=UTC \
  docker.io/f0rc3/gokapi:latest

Then visit http://localhost:53842/setup and follow the setup wizard.

Screenshots

Main Menu

image

File Requests

image

User Overview

image

API Overview

image

Status Overview

image

Download Link

image


System Requirements

Minimum

  • CPU: 1 core
  • RAM: 256 MB
  • Storage: 100 MB + file storage
  • OS: Linux, macOS, Windows

Recommended

  • CPU: 2+ cores
  • RAM: 512 MB+
  • Storage: SSD strongly recommended

Development

Building from Source

# Clone the repository
git clone https://github.com/Forceu/gokapi.git
cd gokapi

# Build the binary
make build

# Run tests
make test

# Build Docker image
docker build -t gokapi:local .

License

This project is licensed under the AGPL3 - see the LICENSE.md file for details

Contributors

Donations

As with all Free software, the power is less in the finances and more in the collective efforts. I really appreciate every pull request and bug report offered up by our users! If however, you're not one for coding/design/documentation, and would like to contribute financially, you can do so with the link below. Every help is very much appreciated!

paypal LiberaPay

Powered by Jetbrains

Extension points exported contracts — how you extend this code

Database (Interface)
Database declares the required functions for a database connection [2 implementers]
internal/configuration/database/dbabstraction/DbAbstraction.go
File (Interface)
File contains information about the stored file [2 implementers]
internal/storage/filesystem/interfaces/Interfaces.go
OAuthUserClaims (Interface)
OAuthUserClaims contains the claims [1 implementers]
internal/webserver/authentication/Authentication.go
MockT (Interface)
(no doc) [1 implementers]
internal/test/TestHelper.go
System (Interface)
System is a driver for storing and retrieving files [2 implementers]
internal/storage/filesystem/interfaces/Interfaces.go

Core symbols most depended-on inside this repo

n
called by 2730
internal/webserver/web/static/apidocumentation/swagger/swagger-ui-bundle.js
n
called by 1586
internal/webserver/web/static/apidocumentation/swagger/swagger-ui.js
n
called by 916
internal/webserver/web/static/apidocumentation/swagger/swagger-ui-standalone-preset.js
r
called by 720
internal/webserver/web/static/apidocumentation/swagger/swagger-ui-bundle.js
IsEqualBool
called by 694
internal/test/TestHelper.go
o
called by 465
internal/webserver/web/static/apidocumentation/swagger/swagger-ui-bundle.js
IsEqualString
called by 375
internal/test/TestHelper.go
r
called by 345
internal/webserver/web/static/apidocumentation/swagger/swagger-ui-standalone-preset.js

Shape

Function 2,387
Method 373
Struct 137
Interface 9
TypeAlias 4
FuncType 1

Languages

Go60%
TypeScript40%

Modules by API surface

internal/webserver/web/static/apidocumentation/swagger/swagger-ui-bundle.js198 symbols
internal/webserver/web/static/apidocumentation/swagger/swagger-ui-standalone-preset.js169 symbols
internal/webserver/web/static/js/min/polyfill.min.js128 symbols
internal/webserver/web/static/apidocumentation/swagger/swagger-ui.js114 symbols
internal/webserver/web/static/js/min/admin.min.22c2879918.js113 symbols
internal/webserver/api/routing.go79 symbols
internal/webserver/api/routingParsing.go64 symbols
internal/configuration/setup/static/setup/src/jquery-2.0.3.min.js64 symbols
internal/configuration/setup/static/setup/js/jquery-2.0.3.min.js64 symbols
internal/webserver/api/Api.go63 symbols
internal/webserver/Webserver.go60 symbols
internal/webserver/api/Api_test.go49 symbols

Dependencies from manifests, versioned

github.com/Kodeworks/golang-image-icov0.0.0-2014111822552 · 1×
github.com/NYTimes/gziphandlerv1.1.1 · 1×
github.com/alicebob/gopher-jsonv0.0.0-2023021814350 · 1×
github.com/aws/aws-sdk-gov1.55.8 · 1×
github.com/djherbis/atimev1.1.0 · 1×
github.com/ebitengine/puregov0.9.1 · 1×
github.com/go-jose/go-jose/v4v4.1.3 · 1×

For agents

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

⬇ download graph artifact