❄️ Small and simple online file sharing & pastebin
  • Go 63%
  • HTML 36.5%
  • Dockerfile 0.5%
Find a file
Kamil Marut 08bb87c56b
All checks were successful
Build / Quality (push) Successful in 2m37s
Build / Tests (push) Successful in 54s
Build / Docker (push) Successful in 2m48s
fix: Run unidecode on filenames before uploading to avoid signature errors
2026-03-31 13:30:02 +02:00
.forgejo/workflows ci: Chain the pipeline as quality -> tests -> build 2026-03-31 09:44:36 +02:00
cmd feat: Update AWS SDK to v2 2026-03-31 12:14:16 +02:00
datetime refactor: Unify expiration check 2025-07-17 22:08:53 +02:00
logger feat(logger): Use sentryhttp instead of logging manually 2024-01-13 16:52:16 +01:00
random refactor: Unify expiration check 2025-07-17 22:08:53 +02:00
server fix: Set the password hash cookie as secure 2026-03-31 12:03:04 +02:00
storage fix: Run unidecode on filenames before uploading to avoid signature errors 2026-03-31 13:30:02 +02:00
.dockerignore refactor(ci): Add Dockerfile 2022-03-29 22:29:06 +02:00
.gitignore build: Add docker-compose.yml for local container build 2026-03-31 12:55:34 +02:00
docker-compose.yml build: Add docker-compose.yml for local container build 2026-03-31 12:55:34 +02:00
Dockerfile fix: Add ca-certificates to the final Docker image 2026-03-31 13:06:31 +02:00
go.mod fix: Run unidecode on filenames before uploading to avoid signature errors 2026-03-31 13:30:02 +02:00
go.sum fix: Run unidecode on filenames before uploading to avoid signature errors 2026-03-31 13:30:02 +02:00
LICENSE Initial commit 2021-05-17 21:02:43 +02:00
main.go refactor(cli): Replace spf13/cobra+viper with urfave/cli 2023-02-03 20:58:41 +01:00
README.md feat: Update Go version to 1.26 2026-03-31 12:03:42 +02:00

❄️ Small and simple online file sharing & pastebin

GitHub Test Workflow Status MIT License

Features

  • File sharing: Upload and share files.
  • Pastebin: Upload and share text snippets.
  • File expiration: Set expiration dates for shared files.
  • Password protection: Secure your files or the whole app instance with a password.

Requirements

  • Go >= 1.26

Configuration

All configuration is done through environment variables or CLI flags.

Local storage

# Override storage provider
$ export STORAGE=local

# Provide directory where uploaded files should be stored
$ export UPLOAD_DIRECTORY=uploads/

S3-compatible storage

# Override storage provider
$ export STORAGE=s3

# Specify S3 bucket and region
$ export AWS_S3_BUCKET=storage-bucket
$ export AWS_S3_REGION=eu-central-1

# Specify AWS keys for accessing S3
$ export AWS_S3_ACCESS_KEY=
$ export AWS_S3_SECRET_KEY=

# Optionally, specify AWS session token for temporary credentials
$ export AWS_S3_SESSION_TOKEN=

Reverse proxy

If you want to run fileigloo behind a reverse proxy, make sure to set the X-Forwarded-* headers. You can do this with Nginx like this:

location / {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Docker

You can run fileigloo using Docker. Here's an example command:

docker run -d -p 8080:8080 \
    -e STORAGE=local \
    -e UPLOAD_DIRECTORY=/data/uploads/ \
    -v /path/to/local/uploads:/data/uploads/ \
    --name fileigloo \
    exler/fileigloo:latest

If you're running into problems with the uploads, you can try to set the tmpfs option for the container to have more available /tmp space:

docker run -d \
    --tmpfs /tmp:rw,size=1536m \
    -e STORAGE=local \
    -e UPLOAD_DIRECTORY=/data/uploads/ \
    -v /path/to/local/uploads:/data/uploads/ \
    --name fileigloo \
    exler/fileigloo:latest

Usage

Program usage

USAGE:
   fileigloo [global options] command [command options] [arguments...]

COMMANDS:
   version    Show current version
   runserver  Run web server
   files      Manage files in storage
   help, h    Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h  show help

License

Copyright (c) 2021-2025 by Kamil Marut

Fileigloo is under the terms of the MIT License, following all clarifications stated in the license file.