GoSƐ

GoSƐ is a modern file-uploader focusing on scalability and simplicity. It only depends on a S3 storage backend and hence scales horizontally without the need for additional databases or caches.

Directory Structure

    • .env
    • docker-compose.yml

docker-compose.yml

version: "3.7" 
services:
 
  minio:
    image: minio/minio:RELEASE.2022-06-03T01-40-53Z.fips
    command: server /mnt/data --console-address ":9001"
    ports:
    - 9000:9000 # API
    - 9001:9001 # Webinterface
    environment:
      MINIO_ROOT_USER: "admin-user" # changeme!
      MINIO_ROOT_PASSWORD: "admin-pass"  # changeme!
      MINIO_SERVER_URL: "http://localhost:9000"
      MINIO_SITE_REGION: "s3"
    volumes:
    - ./minio-data:/mnt/data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/ready"]
      interval: 30s
      timeout: 20s
      retries: 3
 
  gose:
    image: ghcr.io/stv0g/gose:v0.4.0
    build:
      context: .
    ports:
    - 8080:8080
    environment:
      GOSE_LISTEN: ":8080"
      GOSE_BASE_URL: "http://localhost:8080"
      GOSE_BUCKET: "gose-uploads"
      GOSE_ENDPOINT: "minio:9000"
      GOSE_REGION: "s3"
      GOSE_PATH_STYLE: "true"
      GOSE_NO_SSL: "true"
      GOSE_ACCESS_KEY: "admin-user" # changeme!
      GOSE_SECRET_KEY: "admin-pass" # changeme!
      GOSE_MAX_UPLOAD_SIZE: "50GB"
      GOSE_PART_SIZE: "16MB"
    depends_on:
    - minio
    restart: unless-stopped

Resources

Website: https://gose.0l.de/

GitHub: https://github.com/stv0g/gose

GitHub Registry: https://github.com/stv0g/gose/pkgs/container/gose

Configuration: https://github.com/stv0g/gose#docker