Invite-only · Private CDN

YOUR FILES.
SAFE HARBOR.

Private image and avatar CDN for applications that don't want to manage file infrastructure internally. Multi-tenant isolation, WebP delivery and Docker-native deployment.

Multi-tenantArchitecture
WebPAuto-optimization
Docker1 command setup
MITOpen Source
docker compose uprunning
fileharbor
db
uploads
1,248 assets
3 tenants
ImagesAlbumsAvatarsMulti-TenantDockerS3 StorageWebP CDNMIT LicenseSelf-HostedInvite-OnlyREST APIRole-Based AccessImagesAlbumsAvatarsMulti-TenantDockerS3 StorageWebP CDNMIT LicenseSelf-HostedInvite-OnlyREST APIRole-Based Access
Core Capabilities

Built for operators.
Not for everyone.

FileHarbor is a precision tool, not a consumer product. Every feature earns its place — nothing bloats the control room.

Tenant Isolation

Every client lives in its own namespace. Assets never bleed across boundaries. Your clients' files are their files — not yours to manage together.

WebP Delivery

Images are converted and served as WebP automatically. No pipeline to configure. Just upload — the harbor handles the rest.

Docker Native

One compose file. No Kubernetes, no cloud bill, no vendor. Runs on any Linux box. Scales when you need it, quiet when you don't.

Albums & Collections

Group, tag, and bookmark assets into structured albums. Shareable, searchable, exportable. Not an afterthought — core to the data model.

Avatar Management

First-class avatar storage tied to user identities. Serve profile images from the same CDN as everything else. Consistent. Fast. Controlled.

Invite-Only Access

No open signups. No free tier abuse. Tenants are provisioned by operators. The harbor is not a port for strangers.

Your Domain
FileHarborMulti-tenant core
Tenant A
Tenant B
Tenant C
Self-Hosting

From zero to harbor
in under two minutes.

No hosted control plane. No telemetry calling home. No secret dependencies. A single compose file brings up the full stack — API, database, storage. You own the entire thing from day one.

1
Clone the repository
Pull the latest release from GitHub. MIT licensed, no strings.
2
Configure your environment
Set your database URL, storage driver, and JWT secret. Done.
3
Run docker compose up
Harbor is live. Create your first tenant and start uploading.
docker-compose.yml
services:
  fileharbor:
    image: registry.gitlab.com/heyatomdev/fileharbor:2.1.3
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgres://fh:secret@db/fh
      STORAGE_DRIVER: local
      JWT_SECRET: ${JWT_SECRET}
    volumes:
      - ./uploads:/app/uploads
    depends_on: [db]

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: fh
      POSTGRES_USER: fh
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:
Managed Hosting

The harbor,
without the anchor work.

Don't want to run the infrastructure yourself? We operate FileHarbor on dedicated managed infrastructure — your instance, your data, your domain. No shared tenants on our end.

Access is invite-only. We review each request to ensure capacity and quality of service. Not accepting unlimited signups.

Request Access
  • Dedicated instance on managed infrastructure
  • Automated backups and point-in-time recovery
  • TLS termination and custom domain setup
  • Priority support with direct access to the team
  • Storage scaling without downtime
  • Pre-configured S3-compatible object storage

Choose your berth.

Two ways into the harbor. Both lead to the same destination: full control over your files.

Open Source

Self-Host for Free

Clone the repo, configure your environment, and run. MIT licensed — no usage fees, no telemetry, no surprises. Full source available.

Read the Docs
Managed · Invite Only

Managed Hosting

Skip the ops. We run a dedicated FileHarbor instance on your behalf — your domain, your data, your control. We just keep the lights on.

Apply for Access