Hoppscotch custom fork for personnal use
Find a file
2026-05-06 16:30:10 +02:00
.devcontainer chore: make devcontainer copy .env.example (#3318) 2023-09-28 21:58:17 +05:30
.husky chore: bump dependencies (#4444) 2024-10-24 03:25:55 +05:30
docs/superpowers docs: document coolify aio cleanup 2026-05-06 09:50:56 +02:00
packages fix: expose coolify production envs 2026-05-06 16:30:10 +02:00
.dockerignore chore: trim repo for coolify aio 2026-05-06 09:57:24 +02:00
.editorconfig docs: better copy 2021-04-23 11:38:56 +00:00
.env.example feat: split dev and prod compose workflows 2026-05-06 15:06:35 +02:00
.envrc feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +05:30
.gitattributes chore: add .gitattributes 2022-03-28 22:37:36 +05:30
.gitignore chore: ignore superpowers docs 2026-05-05 17:53:16 +02:00
.npmrc chore: pin dependencies across packages (#3876) 2024-03-07 23:37:48 +05:30
.prettierignore docs: better copy 2021-04-23 11:38:56 +00:00
.prettierrc.js chore: bump dependencies (#3258) 2023-08-21 09:06:30 +05:30
aio-multiport-setup.Caddyfile feat: mock server (#5482) 2025-10-27 23:03:22 +05:30
aio-subpath-access.Caddyfile feat: mock server (#5482) 2025-10-27 23:03:22 +05:30
aio_run.mjs chore: security patch for the dependency chain v2025.11.0 (#5590) 2025-11-24 14:21:29 +05:30
CHANGELOG.md build: bump deps 2022-01-24 05:44:10 +05:30
commitlint.config.js feat: added commitlint, semantic pr 2021-06-28 00:24:16 +05:30
devenv.lock feat(desktop): cloud for orgs support - phase 3 (#6043) 2026-03-26 18:00:51 +05:30
devenv.nix feat(desktop): cloud for orgs support - phase 3 (#6043) 2026-03-26 18:00:51 +05:30
devenv.yaml feat(desktop): portable phase-3: instance manager (#5421) 2025-11-25 18:09:18 +05:30
docker-compose.prod.yml fix: expose coolify production envs 2026-05-06 16:30:10 +02:00
docker-compose.yml feat: split dev and prod compose workflows 2026-05-06 15:06:35 +02:00
healthcheck.sh fix: ensure graceful shutdown and container stop when stopApp is called (#5494) 2025-10-21 19:39:39 +06:00
jsconfig.json Revert "Revert "Migrate Postwoman to Nuxt.js (full Vue and SCSS support)"" 2019-08-24 22:09:29 +05:30
LICENSE docs: updated copyright year 2022-01-24 05:41:24 +05:30
Makefile feat: split dev and prod compose workflows 2026-05-06 15:06:35 +02:00
package.json chore: trim repo for coolify aio 2026-05-06 09:57:24 +02:00
pnpm-lock.yaml chore: trim repo for coolify aio 2026-05-06 09:57:24 +02:00
pnpm-workspace.yaml chore: trim repo for coolify aio 2026-05-06 09:57:24 +02:00
prod.Dockerfile chore: security patch for the dependency chain v2026.4.0 (#6191) 2026-04-28 17:51:43 +05:30
README.md fix: expose coolify production envs 2026-05-06 16:30:10 +02:00
tailwind.config.ts chore: trim repo for coolify aio 2026-05-06 09:57:24 +02:00

Hoppscotch Self-Hosted

Fork interne de Hoppscotch pour déploiement self-host.

Contenu

  • App web : packages/hoppscotch-selfhost-web
  • Backend NestJS et Prisma : packages/hoppscotch-backend
  • Admin : packages/hoppscotch-sh-admin
  • Image Docker multi-target : prod.Dockerfile
  • Compose dev live : docker-compose.yml
  • Compose prod image-only : docker-compose.prod.yml

Images Docker

Les images sont buildées en local puis poussées à la main sur le registry.

Images utilisées en prod :

forge.lclr.dev/thibaud-lclr/api-client-backend:latest
forge.lclr.dev/thibaud-lclr/api-client-app:latest
forge.lclr.dev/thibaud-lclr/api-client-sh-admin:latest

Targets Docker :

backend   -> backend + Caddy backend
app       -> app web + webapp-server + Caddy app
sh_admin  -> admin + Caddy admin

Préparer l'environnement

Créer .env si besoin :

make ensure-env

Variables importantes :

POSTGRES_PASSWORD=<mot-de-passe-fort>
POSTGRES_DB=hoppscotch
DATA_ENCRYPTION_KEY=<chaine-de-32-caracteres>

VITE_BASE_URL=https://<domaine-app>
VITE_SHORTCODE_BASE_URL=https://<domaine-app>
VITE_ADMIN_URL=https://<domaine-admin>
VITE_BACKEND_GQL_URL=https://<domaine-backend>/graphql
VITE_BACKEND_WS_URL=wss://<domaine-backend>/graphql
VITE_BACKEND_API_URL=https://<domaine-backend>/v1

WHITELISTED_ORIGINS=https://<domaine-app>,https://<domaine-admin>
TRUST_PROXY=true

Pour le compose prod local, ces variables pilotent les images :

API_CLIENT_REGISTRY=forge.lclr.dev
API_CLIENT_NAMESPACE=thibaud-lclr
API_CLIENT_IMAGE_PREFIX=api-client
API_CLIENT_TAG=latest

Build et push registry

Se connecter au registry :

docker login forge.lclr.dev

Builder les trois images en latest :

make docker-build-images TAG=latest

Pousser les trois images :

make docker-push-images TAG=latest

Faire les deux en une commande :

make docker-build-push-images TAG=latest

Pour publier un tag de test :

make docker-build-push-images TAG=fork-v1.0.0

Déploiement prod

La prod utilise uniquement docker-compose.prod.yml.

Ce compose ne contient pas de build:. Il tire les images du registry.

Sur Coolify, docker-compose.prod.yml est la source de vérité des variables d'environnement. Les variables sont déclarées dans les blocs environment: des services pour que Coolify les crée dans son UI au chargement du compose. Il ne faut pas compter sur un fichier .env du dépôt en prod : il est ignoré par Git.

Variables générées/préremplies pour Coolify :

  • SERVICE_PASSWORD_POSTGRES : mot de passe PostgreSQL partagé entre la base et le backend
  • SERVICE_BASE64_DATA_ENCRYPTION_KEY : clé stable de 32 caractères pour DATA_ENCRYPTION_KEY
  • SERVICE_URL_HOPPSCOTCH_APP : URL publique de l'app
  • SERVICE_URL_HOPPSCOTCH_ADMIN : URL publique de l'admin
  • SERVICE_URL_HOPPSCOTCH_BACKEND : URL publique du backend
  • SERVICE_FQDN_HOPPSCOTCH_BACKEND : domaine du backend, utilisé pour VITE_BACKEND_WS_URL

Après l'import du compose dans Coolify, vérifier au minimum que les trois URLs publiques correspondent aux domaines assignés aux services app, admin et backend.

Démarrer avec le tag latest :

make prod-up

Démarrer avec un autre tag :

make prod-up TAG=fork-v1.0.0

Voir les logs :

make prod-logs

Voir l'état des services :

make prod-ps

Arrêter :

make prod-down

Services prod :

  • hoppscotch-db : PostgreSQL 15 avec volume persistant
  • hoppscotch-backend : backend + migrations Prisma au démarrage
  • hoppscotch-app : app web self-host
  • hoppscotch-sh-admin : admin

Ports prod :

  • 3000 : app web
  • 3100 : admin
  • 3170 : backend
  • 3200 : serveur de bundles webapp

Développement local

Le compose dev est docker-compose.yml.

Il build une image de base locale et monte le repo en volume.

Démarrer :

make dev-up

Alias :

make up

Voir les logs :

make dev-logs

Voir l'état :

make dev-ps

Arrêter :

make dev-down

Services dev :

  • hoppscotch-db
  • hoppscotch-dev-deps : installe les dépendances dans un volume Docker
  • hoppscotch-backend : pnpm run start:dev
  • hoppscotch-app : Vite sur 3000
  • hoppscotch-sh-admin : Vite sur 3100

Volumes dev :

  • le repo est monté dans /usr/src/app
  • node_modules est dans un volume Docker
  • le store pnpm est dans un volume Docker

Procédure de release courte

  1. Mettre à jour le code.
  2. Vérifier localement.
  3. Builder et pousser :
make docker-build-push-images TAG=latest
  1. Déployer :
make prod-up
  1. Contrôler :
make prod-ps
make prod-logs