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

CapabilityProviderLicense
Database (Postgres 16)Core — always includedFree
GraphQL API (Hasura)Core — always includedFree
Auth (JWT, email+password, OAuth)Core Auth serviceFree
Object storage (file attachments)MinIO optional serviceFree
Scheduled taskscron free pluginFree
Push / email notificationsnotify free pluginFree

No pro plugins. No license key.


App Surfaces

SurfaceFrameworkHosted URL
WebReact + Vitetask.nself.org
MobileReact Native + Expo
DesktopTauri 2
TVreact-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:

VariableWhat to set
BASE_DOMAINYour domain (e.g. tasks.example.com) or localhost for local dev
HASURA_GRAPHQL_ADMIN_SECRETA strong random secret
NHOST_JWT_SECRETA random 32-char string
POSTGRES_PASSWORDA 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

ActionCommand
Start backendcd backend && nself start
Stop backendcd backend && nself stop
Check healthcd backend && nself health
View logscd backend && nself logs
Hasura consolecd backend && nself db hasura console

Default local URLs after nself start:

ServiceURL
Hasura GraphQLhttp://localhost:8080/v1/graphql
Authhttp://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