Self-Hosting Guide

Run Your Own Codesfer Server

Deploy and manage your own Codesfer instance for complete control over your code snippets and data.

Server Setup

Get your Codesfer server up and running in seconds.

Running the Server

Start your Codesfer server with a single command.

Server
$ |

Environment Variables

Configure your server with environment variables for flexible deployment.

Database Configuration

Configure authentication and file index databases. Supports sqlite and libsql drivers.

How it works

Database configuration uses driver/source pairs. The *_DRIVER specifies the database type (sqlite or libsql), and *_SOURCE provides the connection string.

VariableDescriptionDefault
DB_DRIVER
Auth database driver
sqlite libsql
sqlite
DB_SOURCEAuth database connection stringfile:auth.db
INDEX_DB_DRIVER
File index database driver
sqlite libsql
sqlite
INDEX_DB_SOURCEFile index database connection stringfile:index.db
OBJECT_BACKEND_DRIVER
Object storage backend
sqlite r2
sqlite
OBJECT_STORAGE_SOURCEObject storage connection string (when OBJECT_BACKEND_DRIVER=sqlite)file:object_storage.db
Cloudflare R2 Configuration

Required when using OBJECT_BACKEND_DRIVER=r2

VariableDescription
CF_ACCOUNT_IDYour Cloudflare Account ID
CF_ACCESS_KEYR2 Access Key ID
CF_SECRET_ACCESS_KEYR2 Secret Access Key
CF_BUCKETR2 Bucket Name

Example Configurations

Ready-to-use configuration examples for different deployment scenarios.

SQLite (Local)

Simple setup for personal use or development.

Quickstart
export DB_DRIVER="sqlite"
export DB_SOURCE="file:auth.db"
export INDEX_DB_DRIVER="sqlite"
export INDEX_DB_SOURCE="file:index.db"
export OBJECT_BACKEND_DRIVER="sqlite"
export OBJECT_STORAGE_SOURCE="file:object_storage.db"

./build/codeserver -port 3000
Cloudflare R2

Production setup with scalable cloud storage.

Production
export DB_DRIVER="sqlite"
export DB_SOURCE="file:auth.db"
export INDEX_DB_DRIVER="sqlite"
export INDEX_DB_SOURCE="file:index.db"
export OBJECT_BACKEND_DRIVER="r2"
export CF_ACCOUNT_ID="your-account-id"
export CF_ACCESS_KEY="your-access-key"
export CF_SECRET_ACCESS_KEY="your-secret-key"
export CF_BUCKET="your-bucket-name"

./build/codeserver -port 3000
Turso/LibSQL (Distributed)

Distributed database with Turso and R2 object storage.

Advanced
export DB_DRIVER="libsql"
export DB_SOURCE="libsql://your-database.turso.io?authToken=your-auth-token"
export INDEX_DB_DRIVER="libsql"
export INDEX_DB_SOURCE="libsql://your-index-db.turso.io?authToken=your-auth-token"
export OBJECT_BACKEND_DRIVER="r2"
export CF_ACCOUNT_ID="your-account-id"
export CF_ACCESS_KEY="your-access-key"
export CF_SECRET_ACCESS_KEY="your-secret-key"
export CF_BUCKET="your-bucket-name"

./build/codeserver -port 3000

REST API Endpoints

Build custom integrations using the exposed REST API.

Available Endpoints

The server exposes these endpoints for authentication and storage management.

MethodEndpointDescription
POST/auth/loginAuthenticate user
GET/storage/listList user's snippets
POST/storage/uploadUpload a new snippet
DELETE/storage/removeRemove a snippet