An open-source, self-hosted document management system for personal files and records.
176
Dockerfile linkslinux/amd64, linux/arm64justpranavrs/filebase), GitHub Container Registry (ghcr.io/justpranavrs/filebase)
Filebase is an open-source, self-hosted document management system built for storing personal records, certificates, and files locally. It operates with zero cloud dependencies, using SQLite for structured metadata and local disk storage for document files.
The web interface is server-rendered using Askama templates and HTMX, providing fast in-page updates without client-side single-page framework overhead.
$ mkdir -p data storage
$ docker run --name some-filebase \
-p 3000:3000 \
--user "$(id -u):$(id -g)" \
-v ./data:/var/lib/filebase/data \
-v ./storage:/var/lib/filebase/storage \
-d justpranavrs/filebase:0.1.0-alpha.1
Database migrations execute automatically when the container starts. Once running, access the web interface at http://localhost:3000.
docker composeExample compose.yml for Filebase:
services:
filebase:
image: justpranavrs/filebase:0.1.0-alpha.1
container_name: filebase
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./data:/var/lib/filebase/data
- ./storage:/var/lib/filebase/storage
Run docker compose up -d, wait for initialization to complete, and visit http://localhost:3000.
Two directories inside the container require persistent storage:
/var/lib/filebase/data: Stores the active SQLite database file (filebase.db)./var/lib/filebase/storage: Stores uploaded document payloads.Important Note: Mount host directories or named volumes to these locations. If these paths are not mounted, all stored files and database records will be lost whenever the container is updated or removed.
--user NotesThis image runs as the non-root user nonroot with UID 65532 by default. When mounting host directories on Linux, ensure the directories exist and are writable by UID 65532 (for example via chown -R 65532:65532 data storage), or pass --user "$(id -u):$(id -g)" to run the container using your host user credentials.
The Filebase image uses environment variables to configure its runtime behavior. All variables have sensible defaults pre-configured in the container.
SERVER_HOSTThis variable defines the network interface Filebase binds to inside the container. Defaults to 0.0.0.0.
SERVER_PORTThis variable defines the port Filebase listens on inside the container. Defaults to 3000.
DATABASE_URLThis variable defines the SQLite database connection string. Defaults to sqlite:/var/lib/filebase/data/filebase.db.
STORAGE_DIRThis variable defines the directory where uploaded documents are stored. Defaults to /var/lib/filebase/storage.
LOG_LEVELThis variable controls logging verbosity (debug, info, warn, error). Defaults to info.
SERVER_TIMEOUT_SECONDSThis optional variable sets the HTTP request timeout in seconds. Defaults to 30.
DATABASE_MAX_CONNECTIONSThis optional variable sets the maximum number of SQLite connections in the pool. Defaults to 10.
DATABASE_TIMEOUT_SECONDSThis optional variable sets the database lock acquire timeout in seconds. Defaults to 30.
gcr.io/distroless/static-debian13:nonroot65532:65532 (nonroot)muslView license information for the software contained in this image.
Content type
Image
Digest
sha256:7d99df007…
Size
4.5 MB
Last updated
about 1 month ago
docker pull justpranavrs/filebase:0.1.0-alpha.1