-
Notifications
You must be signed in to change notification settings - Fork 13
Repository Structure
amirsadraabdollahi edited this page Jul 28, 2026
·
6 revisions
- Image build/push and cluster deploy are handled by GitHub Actions (
.github/workflows/build-and-deploy.yml), which builds to GHCR and deploys to the k3srodannamespace. (The old DockerHub autobuildhooksare no longer used.) - the
scriptsfolder (/scripts) holds miscellaneous files and scripts, like the default environment variables file for Rodan and cronjobs scripts - Each folder houses their own container needed to run the Rodan service (except: hooks, redis, scripts)
Each service has its own folder, and they all hold the same folder structure.
- The
codefolders (eg: rodan-main/code, rodan-client/code) are submodules for their respective repositories. - The
configfolders (eg: nginx/config, rodan-client/config) houses configuration files for the container. - The
scriptsfolder (eg: rodan-client/scripts) point to start scripts and docker entry points for their respective containers. These scripts exist to help you for that specific container. There can also be scripts to help build the service outside of the dockerfile. - The
maintenancefolder (eg: postgres/maintenance) is a collection of database maintenance scripts. These are vital to backups, do not change them unless you know what you are doing.
The Makefile is meant to make your life easier. Prepend each of the following commands with make to run them from the root of the project directory (e.g. make run).
-
run— bring up all containers for local development (docker compose up, withDOCKER_TAG=nightlyset for you). Every container auto-starts its service; just open http://localhost. See Working on Rodan. -
run_client— bring up only the Rodan-Client container to work on the front end. -
remote_jobs— fetch the external job packages (Pixel.js / Neon wrappers) onto your machine. -
stop— stop all containers. -
clean— delete all stopped services, images, and volumes (dangerous!). -
clean_git— git-reset this repository and pull the latest changes. -
health— show container health. -
build— build all images locally (Rodan, the Celery workers, Postgres with PL/Python, etc.). Slow (hours); normally CI builds images, so you rarely need this.
Deployment is no longer driven by the Makefile. Image build/push and cluster rollout are handled by GitHub Actions (.github/workflows/build-and-deploy.yml): images are built and pushed to GHCR (ghcr.io/ddmal/*) and deployed to the k3s rodan namespace via kubectl set image. See k8s/README.md. (The old Docker-Swarm / DockerHub targets — deploy_staging, deploy_production, update, push, pull, clean_swarm — have been removed.)
- Repository Structure
- Working on Rodan
- Testing Production Locally
- Working on Interactive Classifier
- Job Queues
- Testing New Docker Images
- k8s Deploy Runbook (k8s/README.md)
- Set up Environment Variables
- Set up SSL with Certbot
- Set up SSH with GitHub
- Deploying on Staging
- Deploying on Production
- Import Previous Data