Gokapi
File sharing server with expiring links and download limits.
- Replaces
-
Paid file transfer services, such as WeTransfer.
All open-source alternatives to WeTransfer
- Difficulty
-
Difficulty: Easy
1 service, 2 volume mounts, 1 env value to set, no elevated host access. Heuristic score 2 of 11: easy.
- Stack
Go (language)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
AGPL-3.0(OSI-approved open source) - Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/Forceu/Gokapi/blob/0142d4c/README.md, read on .
- Repository
GitHub stats
- Stars
- 2,913
- Forks
- 155
- Open issues and pull requests
- 53
- Last push
- 2026-09-12
- Latest release
- v2.2.4
- Released
- 2026-03-10
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as AGPL-3.0.
Compose file
services:
gokapi:
image: f0rc3/gokapi:latest
container_name: gokapi
ports:
- "127.0.0.1:53842:53842"
volumes:
- ./gokapi-data:/app/data
- ./gokapi-config:/app/config
restart: always
env_file:
- "./.env"
From the app's own repository: github.com/Forceu/Gokapi/blob/0142d4c/docker-compose.yaml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/Forceu/Gokapi/blob/0142d4c/docs/setup.rst)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as docker-compose.yaml (github.com/Forceu/Gokapi/blob/0142d4c/docker-compose.yaml)
Use the compose file shown above.
- Save as .env next to the compose file (github.com/Forceu/Gokapi/blob/0142d4c/.env.dist)
# Timezone TZ=UTC #TZ=Europe/Berlin # Optional S3 #GOKAPI_AWS_BUCKET= #GOKAPI_AWS_REGION= #GOKAPI_AWS_KEY= #GOKAPI_AWS_KEY_SECRET= #GOKAPI_AWS_ENDPOINT= # ID Lengths #GOKAPI_LENGTH_ID=15 #GOKAPI_LENGTH_HOTLINK_ID=40 # App Directories #GOKAPI_CONFIG_DIR=config #GOKAPI_CONFIG_FILE=config.json #GOKAPI_DATA_DIR=data # Chunk & Upload Config #GOKAPI_CHUNK_SIZE_MB=45 #GOKAPI_MAX_FILESIZE=102400 #GOKAPI_MAX_MEMORY_UPLOAD=50 #GOKAPI_MAX_PARALLEL_UPLOADS=3 #TMPDIR=/app/data/tmp # Other flags #GOKAPI_DISABLE_CORS_CHECK=false #GOKAPI_LOG_STDOUT=false #GOKAPI_ENABLE_HOTLINK_VIDEOS=false - What the compose file check ran with (github.com/Forceu/Gokapi/blob/0142d4c/docs/setup.rst)
The compose file check ran together with .env.dist from the same commit, saved as .env. The folder held only these files. The setup guide tells the reader to download docker-compose.yaml and .env.dist, rename .env.dist to .env and run docker compose up -d.
- Start it (github.com/Forceu/Gokapi/blob/0142d4c/docs/setup.rst)
docker compose up -d - Open the app (github.com/Forceu/Gokapi/blob/0142d4c/docker-compose.yaml)
Open http://localhost:53842. The compose file publishes host port 53842 for the gokapi service. The docs say the first start opens a setup wizard at the /setup path.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: gokapi: f0rc3/gokapi:latest. A later pull can get a different version. (github.com/Forceu/Gokapi/blob/0142d4c/docker-compose.yaml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 127.0.0.1:53842 (gokapi). (github.com/Forceu/Gokapi/blob/0142d4c/docker-compose.yaml, checked 2026-10-22)
- The compose file mounts host folders. Host paths mounted into containers: ./gokapi-data at /app/data (gokapi), ./gokapi-config at /app/config (gokapi). (github.com/Forceu/Gokapi/blob/0142d4c/docker-compose.yaml, checked 2026-10-22)
Signals
- Open issues and pull requests: 53
- Last push: 2026-09-12 (40 days before this page was built)
- Latest release: v2.2.4 on 2026-03-10 (226 days before this page was built)