Skip to main content

ɳTasks Self-Hosting Guide

ɳTasks Self-Hosting Guide — ɳSelf documentation.

ɳTasks is fully self-hostable for free. No paid license is required. All capabilities it needs (auth, storage, scheduled jobs, notifications) are covered by core services or free plugins.

The hosted alternative is task.nself.org, sign up for free with no setup.


What ɳTasks Needs

Capability Provider License
Database (Postgres 16) Core, always included Free
GraphQL API (Hasura) Core, always included Free
Auth (JWT, email+password, OAuth) Core Auth service Free
Object storage (file attachments) MinIO optional service Free
Scheduled tasks cron free plugin Free
Push / email notifications notify free plugin Free

No pro plugins. No license key.


App Surfaces

Surface Framework Hosted URL
Web React + Vite task.nself.org
Mobile React Native + Expo ,
Desktop Tauri 2 ,
TV react-native-tvos ,

Self-Host: Step by Step

1. Clone the repo

git clone https://github.com/nself-org/ntask
cd ntask

2. Copy and edit the env file

cp backend/.env.example backend/.env.dev

Open backend/.env.dev and set at minimum:

Variable What to set
BASE_DOMAIN Your domain (e.g. tasks.example.com) or localhost for local dev
HASURA_GRAPHQL_ADMIN_SECRET A strong random secret
NHOST_JWT_SECRET A random 32-char string
POSTGRES_PASSWORD A strong random password

3. Build

cd backend
nself build

This generates backend/docker-compose.yml from your env file. The generated file is gitignored, do not commit it.

4. Start

nself start

Wait for all services to show healthy:

nself health

5. Enable optional free plugins

For scheduled tasks and notifications:

nself plugin install cron notify
nself build && nself restart

6. Enable object storage (file attachments)

nself service enable minio
nself build && nself restart

7. Get your service URLs

nself urls

This prints Hasura GraphQL URL, Auth URL, and storage URL. Copy these into the app configs below.


Connect the Apps

Mobile (React Native + Expo)

cd apps/mobile
pnpm install
pnpm start

Set your Hasura and Auth URLs in apps/mobile/.env (or app.config.ts depending on your Expo setup) using the values from nself urls.

Desktop (Tauri 2)

cd apps/desktop
pnpm install
pnpm dev

TV (react-native-tvos)

cd apps/tv
pnpm install
pnpm start

Local Dev Backend Quick Reference

Action Command
Start backend cd backend && nself start
Stop backend cd backend && nself stop
Check health cd backend && nself health
View logs cd backend && nself logs
Hasura console cd backend && nself db hasura console

Default local URLs after nself start:

Service URL
Hasura GraphQL http://localhost:8080/v1/graphql
Auth http://localhost:4000
Storage (MinIO) http://localhost:8484

Hosted Alternative

task.nself.org runs the same ɳTasks stack managed by nself Cloud. Free to use. No setup required.


See Also