Instances auto-hébergées de CWClock
Kubernetes
Un helmchart est disponible sur ce dépôt (dans le dossier helm). Vous pouvez aussi utiliser la CLI cwclock avec la commande cwclock bootstrap.
Essayer avec docker
Sur ce dépôt, la stack complète (PostgreSQL, migrations Flyway, backend et frontend servi par nginx) peut être démarrée avec une seule commande :
docker compose up --build --force-recreate
Cela va :
- Démarrer une base de données PostgreSQL.
- Exécuter les migrations SQL avec Flyway.
- Construire et démarrer le backend Go, qui écoute sur
http://localhost:8080. - Construire le frontend React et le servir via nginx sur
http://localhost:3000, en appelant directement le backend via la variable d'environnementCWCLOCK_API_URL.
Une fois démarré, ouvrez http://localhost:3000 dans votre navigateur.
Une image publique est disponible ici rg.fr-par.scw.cloud/cwclock-t8d7th/cwclock-api:latest.
Sécurité
Vous pouvez modifier la valeur par défaut des variables suivantes :
JWT_SECRETqui vautchangemepar défautCWCLOCK_CONFIRMATION_EMAIL_EXPIRATIONqui vaut24hpar défaut (expiration du lien de l'email de confirmation ou du lien de réinitialisation de mot de passe)
Mode de confirmation
Il existe une variable d'environnement CWCLOCK_ACTIVATION_MODE qui est définie à admin par défaut.
Cela nécessite d'activer le nouveau compte enregistré par un administrateur sans envoyer d'email de confirmation.
Sinon, vous pouvez définir cette variable à email et cela enverra des emails de confirmation via l'API email de CWCloud.
Configuration OIDC
CWClock prend en charge la configuration OIDC pour Google OIDC, Github et Keycloak.
Vous devez configurer les variables suivantes sur l'API :
CWCLOCK_UI_URL=https://{votre domaine frontend}
CWCLOCK_OIDC_GOOGLE_CLIENT_ID=
CWCLOCK_OIDC_GOOGLE_CLIENT_SECRET=
CWCLOCK_OIDC_GITHUB_CLIENT_ID=
CWCLOCK_OIDC_GITHUB_CLIENT_SECRET=
CWCLOCK_OIDC_KEYCLOAK_BASE_URL=
CWCLOCK_OIDC_KEYCLOAK_CLIENT_ID=
CWCLOCK_OIDC_KEYCLOAK_CLIENT_SECRET=
CWCLOCK_OIDC_KEYCLOAK_GROUPS=
Voici l'URL de redirection/callback pour le frontend : https://{votre domaine api}/oidc/callback
Et voici l'URL de redirection/callback pour chaque fournisseur pour l'authentification API :
- Google OIDC :
https://{votre domaine api}/v1/oidc/google/callback - Github :
https://{votre domaine api}/v1/oidc/github/callback - Keycloak :
https://{votre domaine api}/v1/oidc/keycloak/callback
Récupérer l'identifiant et le secret client depuis Google OIDC
1/ Rendez-vous sur la console GCP et recherchez "OIDC" :

Vous arriverez sur la "Google Auth Platform"
2/ Créez une nouvelle application cliente :

Renseignez les URI de redirection avec les URLs suivantes :
https://{votre domaine api}/v1/oidc/google/callbackhttps://{votre domaine frontend}/oidc/callback
Renseignez aussi les Authorised JavaScript origins avec https://{votre domaine frontend}
3/ Copiez/collez l'identifiant client et le secret client (dans les variables d'environnement CWCLOCK_OIDC_GOOGLE_CLIENT_ID et CWCLOCK_OIDC_GOOGLE_CLIENT_SECRET) :

Récupérer l'identifiant et le secret client depuis Github
1/ Rendez-vous dans les paramètres développeurs :

2/ Créez une nouvelle "OAuth App"

Renseignez l'URI de redirection avec l'URL suivante : https://{votre domaine api}/oidc/callback
3/ Générez un nouveau secret client :

4/ Copiez/collez l'identifiant client et le secret client (dans les variables d'environnement CWCLOCK_OIDC_GITHUB_CLIENT_ID et CWCLOCK_OIDC_GITHUB_CLIENT_SECRET) :

API Email
CWClock peut envoyer des emails (pour les liens de confirmation, la régénération de mot de passe, l'envoi de factures) via l'API email de CWCloud.
Vous devez configurer les variables d'environnement suivantes :
CWCLOUD_API_URL(qui est définie par défaut àhttps://api.cwcloud.techmais si vous utilisez un tenant séparé de CWCloud, vous pouvez surcharger cette valeur)CWCLOUD_API_KEYqui attend une clé APICWCLOUD_CONTACT_FORM_IDl'id du formulaire de contact de CWCloudCWCLOCK_MAIL_FROMqui est l'expéditeur des emailsCWCLOCK_LIMIT_MAILqui est une limite mensuelle d'emails envoyés par une organisation (100 par défaut)
Si elle n'est pas configurée, CWClock fonctionnera quand même mais n'enverra pas d'emails.
Note : si vous ne souhaitez pas utiliser l'API email ou de formulaire de contact de CWCloud, il vous suffira de créer des endpoints compatibles qui feront ce que vous souhaitez.