🐕Dogfooding: This site is 100% built with FLIN v1.0.0-alpha.2
v1.0 Launch in -Join Discord

Deploy FLIN

1 binary. 1 folder. Zero config. Deploy in minutes.

No Postgres. No Redis. No S3. No Docker Compose with 47 services.

FLIN CLI

Everything you need, one binary.

flin --help
# Project
flin new myapp [--template starter|todo|fullstack|flinui]
flin new myapp [--demo]  — alias for --template fullstack

# Development
flin dev [path] [--port 3000] [--verbose]
flin run file.flinc — Run compiled bytecode

# Production
flin start [path] [--port 3000]

# Build & Quality
flin build app.flin [--output dist/]
flin test [--filter "pattern"] [--verbose]
flin fmt [file.flin] [--check]
flin check app.flin

# AI / Semantic Search
flin dev — AI enabled by default (fastembed)
flin dev --lite — No AI, minimal footprint (embedded/IoT)

# Tools
flin docs [topic] | flin docs search "query"
flin gc [path] [--dry-run|--sweep] [--grace-period 3600]

# Manage
flin update
flin self uninstall

# Deploy (coming Q2 2026)
flin deploy

Deploy to Any VPS

Recommended

DigitalOcean, Hetzner, Linode, Vultr, OVH... any Linux server works.

1

Install FLIN on your server

ssh user@your-server curl -fsSL https://flin.sh | bash
2

Upload your app

scp -r ./my-flin-app user@your-server:/home/user/
3

Run it

cd my-flin-app flin start . --port 3000 --host 0.0.0.0
4

Keep it running (systemd)

flin-app.service
[Unit]
Description=FLIN App
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/home/user/my-flin-app
ExecStart=/usr/local/bin/flin start . --port 3000 --host 0.0.0.0
Restart=always
Environment=FLIN_ENV=production

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl enable --now flin-app
5

Add HTTPS with Caddy (2 lines!)

sudo apt install -y caddy
Caddyfile
yourapp.com {
    reverse_proxy localhost:3000
}
sudo systemctl restart caddy

Caddy auto-provisions SSL certificates. Zero config.

YDone! Your app is live at https://yourapp.com

Deploy with Docker

Universal

Works on any platform: Railway, Render, Fly.io, your own server.

1

Create Dockerfile in your app

Dockerfile
FROM debian:bookworm-slim

# Install FLIN
RUN apt-get update && apt-get install -y curl ca-certificates \
    && curl -fsSL https://flin.sh | bash \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . .

EXPOSE 3000
CMD ["flin", "start", ".", "--port", "3000", "--host", "0.0.0.0"]
2

Build & Run

docker build -t my-flin-app . docker run -p 3000:3000 my-flin-app

With Persistence (docker-compose.yml)

docker-compose.yml
version: '3.8'

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - flindb:/app/.flindb    # Persist database
      - uploads:/app/uploads   # Persist uploads
    environment:
      - FLIN_ENV=production
    restart: unless-stopped

volumes:
  flindb:
  uploads:
docker compose up -d

Deploy with Easypanel

Self-Hosted PaaS

Your own Heroku on any VPS. Beautiful UI, auto-SSL, one-click deploys.

1

Install Easypanel on your VPS

curl -sSL https://get.easypanel.io | sh

Requires: 2GB RAM, Ubuntu/Debian

2

Add your Dockerfile to your repo

Same Dockerfile as Docker method above.

3

In Easypanel UI

  • Create New App
  • Connect GitHub repository
  • Select Dockerfile
  • Add custom domain
  • Click Deploy

Why Easypanel?

YAuto SSL certificates
YGitHub auto-deploy on push
YOne-click rollbacks
YBuilt-in monitoring
YFree & Open Source

flin deploy

Coming Q2 2026

One command. Zero config. Instant global deployment.


Deploying my-flin-app...

Creating container...     done
Provisioning SSL...       done
Setting up CDN...         done
Running health check...   done

Your app is live at:
https://my-flin-app.flin.sh

Dashboard: https://dash.flin.sh/my-flin-app

What you'll get

YInstant deploys from terminal
YFree subdomain (yourapp.flin.sh)
YCustom domains with auto-SSL
YGlobal CDN edge caching
YBuilt-in analytics
YFree tier available

Be the first to know when it launches.

Join Discord for Updates

FLIN vs The Node.js Stack

What you need
Node.js / Next.js
FLIN
Runtime
Node.js + npm + 847 packages
1 binary
Database
PostgreSQL + Prisma + migrations
Built-in (.flindb)
Cache
Redis + connection pooling
Built-in
File Storage
S3 + multer + presigned URLs
Built-in (save_file())
Auth
NextAuth + Passport + bcrypt
Built-in
Env vars
dotenv + .env.local + .env.prod
Built-in (env())
Process manager
PM2 + ecosystem.config.js
systemd (3 lines)
Reverse proxy
Nginx + 50 lines config
Caddy (2 lines)
Total
47 dependencies, 5 config files, 2 databases
1 binary, 1 folder, 0 config

About the Database

FLIN uses SQLite internally. Your data lives in .flindb/

Backup

cp -r .flindb/ backup-$(date +%Y%m%d)/

Restore

cp -r backup-20260125/ .flindb/

No PostgreSQL setup. No Redis. No connection strings. No migrations CLI.
It just works.

Need Help?