Skip to content

Install and deploy Arkivel.

Set up PostgreSQL, authentication, and deployment.

Installation

Arkivel requires Node.js 24 and PostgreSQL. Uploads use local disk by default; S3-compatible storage is optional.

git clone https://github.com/mohammed-alsalhi/arkivel.git
cd arkivel
npm install
cp .env.example .env
npm run db:deploy
npm run dev

Or run the bundled stack: docker compose up --build -d builds the image, starts PostgreSQL, and applies pending migrations before serving on port 3000. npm run seed:demo fills a fresh database with linked demo pages.

Configuration

Set DATABASE_URL, ADMIN_SECRET, NEXT_PUBLIC_BASE_URL, and ARKIVEL_SITE_MODE (built in: wiki, docs, and media). Choose modules with ARKIVEL_MODULES, for example graph,collections,api, or later from /admin/modules.

The site mode and every NEXT_PUBLIC_* value are compiled in; rebuild after changing them. Database credentials, modules, storage, and OAuth secrets are runtime settings. See the platform overview for what each mode and module does.

Authentication

Create the first owner with npm run setup:owner -- --username owner --email owner@example.com; the password is read from stdin. Public registration never creates an administrator.

Registration is closed by default (ARKIVEL_REGISTRATION=closed); opening it creates viewers only. Set ARKIVEL_ACCESS=private to require sign-in for all content. GitHub and Google OAuth are optional. Roles are viewer, editor, and admin.

Deployment

Run the standalone Node.js server or Docker image on a host with PostgreSQL. Vercel is also supported. Apply schema changes with npm run db:deploy (Prisma migrations under prisma/migrations); never prisma db push against an existing database.

Use one deployment project and database per Arkivel instance. Multiple projects can deploy from the same repository.

Reference