ɳTasks Self-Hosting Guide
هذا المحتوى غير متوفر بلغتك بعد.
ɳTasks Self-Hosting Guide
Section titled “ɳTasks Self-Hosting Guide”ɳ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
Section titled “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
Section titled “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
Section titled “Self-Host: Step by Step”1. Clone the repo
Section titled “1. Clone the repo”git clone https://github.com/nself-org/ntaskcd ntask2. Copy and edit the env file
Section titled “2. Copy and edit the env file”cp backend/.env.example backend/.env.devOpen 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
Section titled “3. Build”cd backendnself buildThis generates backend/docker-compose.yml from your env file. The generated file is gitignored — do not commit it.
4. Start
Section titled “4. Start”nself startWait for all services to show healthy:
nself health5. Enable optional free plugins
Section titled “5. Enable optional free plugins”For scheduled tasks and notifications:
nself plugin install cron notifynself build && nself restart6. Enable object storage (file attachments)
Section titled “6. Enable object storage (file attachments)”nself service enable minionself build && nself restart7. Get your service URLs
Section titled “7. Get your service URLs”nself urlsThis prints Hasura GraphQL URL, Auth URL, and storage URL. Copy these into the app configs below.
Connect the Apps
Section titled “Connect the Apps”Mobile (React Native + Expo)
Section titled “Mobile (React Native + Expo)”cd apps/mobilepnpm installpnpm startSet 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)
Section titled “Desktop (Tauri 2)”cd apps/desktoppnpm installpnpm devTV (react-native-tvos)
Section titled “TV (react-native-tvos)”cd apps/tvpnpm installpnpm startLocal Dev Backend Quick Reference
Section titled “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
Section titled “Hosted Alternative”task.nself.org runs the same ɳTasks stack managed by nself Cloud. Free to use. No setup required.