# Gokapi

File sharing server with expiring links and download limits.

- Replaces: [WeTransfer](https://openlogs.fyi/alternatives/wetransfer)
- Summary: Paid file transfer services, such as WeTransfer.
- Stack: Go (language)
- Deployment: docker_compose
- License: AGPL-3.0 (osi) [source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/LICENSE.md)
- Business model: unknown. The README at the pinned commit does not state a business model, so it stays unknown. ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/README.md), read 2026-10-22)
- Difficulty: easy. 1 service, 2 volume mounts, 1 env value to set, no elevated host access. Heuristic score 2 of 11: easy.
- Requirements: not stated
- Repository: [Forceu/Gokapi](https://github.com/Forceu/Gokapi)

## Install

1. Docker with the Compose plugin ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docs/setup.rst))

   ```text
   A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
   ```

2. Save the compose file as docker-compose.yaml ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docker-compose.yaml))

   ```yaml
   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"
   ```

3. Save as .env next to the compose file ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/.env.dist))

   ```dotenv
   # 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
   ```

4. What the compose file check ran with ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docs/setup.rst))

   ```text
   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.
   ```

5. Start it ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docs/setup.rst))

   ```bash
   docker compose up -d
   ```

6. Open the app ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docker-compose.yaml))

   ```text
   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. ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docker-compose.yaml), checked 2026-10-22)
- The compose file publishes host ports: Host ports: 127.0.0.1:53842 (gokapi). ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/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). ([source](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docker-compose.yaml), checked 2026-10-22)

### Signals

Computed from a GitHub snapshot taken 2026-10-22.

- Open issues and pull requests: 53
- Stars: 2913, forks: 155
- Last push: 2026-09-12 (40 days ago)
- Latest release: v2.2.4 on 2026-03-10 (226 days ago)

## Sources

- [Repository: https://github.com/Forceu/Gokapi](https://github.com/Forceu/Gokapi)
- [License: https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/LICENSE.md](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/LICENSE.md)
- [Business model: https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/README.md](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/README.md)
- [Compose file: https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docker-compose.yaml](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docker-compose.yaml)
- [Install step: https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docs/setup.rst](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/docs/setup.rst)
- [Install step: https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/.env.dist](https://github.com/Forceu/Gokapi/blob/0142d4c318ca67e076dc44ba35ff49e05c84790e/.env.dist)

---
Canonical: https://openlogs.fyi/tools/gokapi  
Last updated: 2026-10-22
