This app is Open Source. Contributors are highly welcome!
Join us on our Discord.
This project uses Node.js and MongoDB.
You need to set some environment variables to run the app. A common way is to create an .env
file, based on template.env
.
cp template.env .env
The following list shows the variables you need to set:
KEY | VALUE |
---|---|
DATABASE_URL | URI of your PostgreSQL database |
DISCORD_ACTIVITY_WEBHOOK_URL | Discord webhook URL for activity notifications (optional) |
DISCORD_MODERATION_WEBHOOK_URL | Discord webhook URL for moderator notifications (optional) |
SUPABASE_URL | Supabase URL for storage (required for image upload) |
SUPABASE_PUBLIC_KEY | Supabase Public Key (required client side database access) |
SUPABASE_SECRET_KEY | Supabase Private Key for storage (required for image upload) |
PLAUSIBLE_API_HOST | Plausible API host (optional) |
PLAUSIBLE_DOMAIN | Plausible domain (optional) |
In order for the screenshot file upload to work locally, you need to create a Supabase account, activate the storage feature, create a new bucket called nodes
and make it public.
From your terminal, you need to install the dependencies first:
npm install
Then you need to synchronize the Prisma schema with the PostgreSQL database schema:
npx prisma migrate dev
Now you are ready to start the app in development mode:
npm run dev
The app requires a user to add and maintain nodes. You can create a user with the following script:
npx prisma db seed
Prisma has an integrated client to explore your database:
npx prisma studio
The project is based on Remix, a full stack React web framework focused on user experience and performance. For UI components, we use Mantine. The database is connected via Prisma, an ORM which connects to PostgreSQL.
Please refer to these documentations for more information.
The app is deployed on Vercel.
MIT