Coolify is an open-source, self-hostable alternative to services like AWS and Vercel. It allows you to deploy both your frontend and backend, as well as manage your database, all in one place.
- A server or VPS with Docker installed
- Domain name (optional, but recommended)
-
Install Coolify on your server by following the instructions at https://coolify.io/docs/installation
-
Access the Coolify dashboard and set up your account
- In the Coolify dashboard, go to "Resources" and click "New Resource"
- Choose "Database" and select "PostgreSQL"
- Configure your database settings (name, username, password)
- Deploy the database
- In the Coolify dashboard, go to "Applications" and click "New Application"
- Choose "Git Repository" and select your ValidationStation repository
- Configure the build settings:
- Build Command:
pip install -r back-end/requirements.txt
- Start Command:
python back-end/manage.py migrate && python back-end/manage.py runserver 0.0.0.0:8000
- Build Command:
- Set environment variables:
DJANGO_SECRET_KEY
API_KEY
NOUN_PROJECT_API_KEY
NOUN_PROJECT_SECRET_KEY
DATABASE_URL
(use the URL provided by your Coolify PostgreSQL deployment)
- Deploy the backend
- In the Coolify dashboard, create another "New Application"
- Choose "Git Repository" and select your ValidationStation repository again
- Configure the build settings:
- Build Command:
cd front-end && npm install && npm run build
- Start Command:
cd front-end && npm run preview
- Build Command:
- Set environment variables:
VITE_API_BASE_URL
(set this to your backend's URL)
- Deploy the frontend
-
Update the
api.jsx
file in your frontend to use the deployed backend URL:export const api = axios.create({ baseURL: import.meta.env.VITE_API_BASE_URL, })
-
Update the CORS settings in your Django backend to allow requests from your frontend URL
- Configure your domain (if using one) in Coolify for both frontend and backend
- Set up SSL certificates through Coolify's built-in Let's Encrypt integration
Your ValidationStation application should now be fully deployed and accessible through Coolify!