Get YAFS up and running in minutes. Choose your preferred installation method below.
Before installing YAFS, make sure you have the following:
The fastest way to get started with YAFS.
docker build -t yafs .
docker run -d \
-p 3000:3000 \
-e DATABASE_URL=postgresql://user:password@host:5432/yafs \
-e SESSION_SECRET=your-secret-key \
-e API_TOKEN=your-api-token \
-e API_USER_ID=1 \
-v /path/to/uploads:/app/uploads \
yafs
Recommended for production deployments with a bundled PostgreSQL database.
version: '3.8'
services:
yafs:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://yafs:yafs@db:5432/yafs
- SESSION_SECRET=change-this-in-production
- API_TOKEN=your-api-token
- API_USER_ID=1
volumes:
- uploads:/app/uploads
depends_on:
- db
db:
image: postgres:16-alpine
environment:
- POSTGRES_USER=yafs
- POSTGRES_PASSWORD=yafs
- POSTGRES_DB=yafs
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
uploads:
pgdata:
docker compose up -d
For development or custom deployments.
git clone https://github.com/Charmunks/yafs.git
cd yafs
npm install
cp .env.example .env
Edit the .env file with your database credentials and secrets.
npm run migrate
# Production
npm start
# Development with auto-reload
npm run dev
Configure YAFS using the following environment variables:
| Variable | Description |
|---|---|
PORT |
Server port (default: 3000) |
DATABASE_URL |
PostgreSQL connection string |
SESSION_SECRET |
Secret key for session encryption |
API_TOKEN |
Token for programmatic file uploads |
API_USER_ID |
User ID associated with API uploads |
Check out the GitHub repository for issues, discussions, and more documentation.
View on GitHub