Compare commits
7 Commits
0.5.1+v202
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9922390ce3 | |||
| c1ee1d9817 | |||
| d3b1bb4f29 | |||
| 800e8426ce | |||
| 97209123e0 | |||
| 899f9d9da0 | |||
| f31c12299d |
@ -1,5 +1,6 @@
|
||||
TYPE=cryptpad
|
||||
|
||||
COMPOSE_FILE="compose.yml"
|
||||
|
||||
DOMAIN=cryptpad.example.com
|
||||
|
||||
@ -17,7 +18,8 @@ SANDBOX_DOMAIN=sandbox.cryptpad.example.com
|
||||
#EXTRA_DOMAINS=', `www.cryptpad.example.com`'
|
||||
LETS_ENCRYPT_ENV=production
|
||||
|
||||
## SSO / OIDC (optional — defaults to false)
|
||||
## SSO / OIDC (optional — uncomment below and add compose.sso.yml to COMPOSE_FILE to enable)
|
||||
# COMPOSE_FILE="$COMPOSE_FILE:compose.sso.yml"
|
||||
#SSO_ENABLED=true
|
||||
#SSO_ENFORCED=false
|
||||
#SSO_PROVIDER_NAME=Authentik
|
||||
|
||||
28
README.md
28
README.md
@ -11,7 +11,7 @@
|
||||
* **Backups**: Yes
|
||||
* **Email**: No
|
||||
* **Tests**: No
|
||||
* **SSO**: No
|
||||
* **SSO**: Yes
|
||||
|
||||
<!-- endmetadata -->
|
||||
|
||||
@ -40,5 +40,31 @@ Then redeploy with `abra app deploy YOURAPPDOMAIN --force`.
|
||||
Now when you login as your user, and visit https://cryptpad.cctest.autonomic.zone/admin/,
|
||||
you should be able to access the admin interface for this cryptpad instance.
|
||||
|
||||
## SSO
|
||||
|
||||
SSO support is provided by `compose.sso.yml`. To enable it, add the SSO compose file and set the SSO variables in your app config:
|
||||
|
||||
```
|
||||
COMPOSE_FILE="compose.yml:compose.sso.yml"
|
||||
SSO_ENABLED=true
|
||||
```
|
||||
|
||||
On the next deploy, the [CryptPad SSO plugin](https://github.com/cryptpad/sso) will be installed automatically.
|
||||
|
||||
You also need to configure the remaining SSO environment variables for your OIDC provider:
|
||||
|
||||
- `SSO_PROVIDER_NAME` — display name shown on the login button (e.g. `Keycloak`, `Authentik`)
|
||||
- `SSO_OIDC_URL` — OIDC discovery URL for your provider
|
||||
- `SSO_CLIENT_ID` — OAuth2 client ID
|
||||
- `SSO_JWT_ALG` — JWT signing algorithm (e.g. `RS256`)
|
||||
|
||||
The client secret is stored as a Docker secret. Insert it with:
|
||||
|
||||
```
|
||||
abra app secret insert YOURAPPDOMAIN sso_client_s v1 YOUR_CLIENT_SECRET
|
||||
```
|
||||
|
||||
Then deploy (or redeploy) to apply: `abra app deploy YOURAPPDOMAIN --force`.
|
||||
|
||||
[`abra`]: https://git.coopcloud.tech/coop-cloud/abra
|
||||
[`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik
|
||||
2
abra.sh
2
abra.sh
@ -1,5 +1,5 @@
|
||||
export CONFIG_VERSION=v2
|
||||
export CONFIG_JS_VERSION=v2
|
||||
export NGINX_CONF_VERSION=v1
|
||||
export SSO_ENTRYPOINT_VERSION=v5
|
||||
export SSO_ENTRYPOINT_VERSION=v6
|
||||
export SSO_JS_VERSION=v3
|
||||
|
||||
41
compose.sso.yml
Normal file
41
compose.sso.yml
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
entrypoint: ["/sso-entrypoint.sh", "/cryptpad/docker-entrypoint.sh"]
|
||||
environment:
|
||||
- SSO_PLUGIN_VERSION
|
||||
- "SSO_ENABLED=${SSO_ENABLED:-false}"
|
||||
- SSO_ENFORCED
|
||||
- SSO_PROVIDER_NAME
|
||||
- SSO_OIDC_URL
|
||||
- SSO_CLIENT_ID
|
||||
- SSO_JWT_ALG
|
||||
secrets:
|
||||
- sso_client_s
|
||||
volumes:
|
||||
- cryptpad_plugins:/cryptpad/lib/plugins
|
||||
configs:
|
||||
- source: sso_entrypoint
|
||||
target: /sso-entrypoint.sh
|
||||
mode: 0755
|
||||
- source: sso_js
|
||||
target: /sso.js
|
||||
|
||||
volumes:
|
||||
cryptpad_plugins:
|
||||
|
||||
secrets:
|
||||
sso_client_s:
|
||||
external: true
|
||||
name: ${STACK_NAME}_sso_client_s_${SSO_CLIENT_SECRET_VERSION}
|
||||
|
||||
configs:
|
||||
sso_entrypoint:
|
||||
name: ${STACK_NAME}_sso_entrypoint_${SSO_ENTRYPOINT_VERSION}
|
||||
file: sso-entrypoint.sh
|
||||
sso_js:
|
||||
name: ${STACK_NAME}_sso_js_${SSO_JS_VERSION}
|
||||
file: sso.js.tmpl
|
||||
template_driver: golang
|
||||
32
compose.yml
32
compose.yml
@ -4,7 +4,6 @@ version: "3.8"
|
||||
services:
|
||||
app:
|
||||
image: cryptpad/cryptpad:version-2026.2.0
|
||||
entrypoint: ["/sso-entrypoint.sh", "/cryptpad/docker-entrypoint.sh"]
|
||||
command: ["npm", "start"]
|
||||
networks:
|
||||
- backend
|
||||
@ -17,16 +16,6 @@ services:
|
||||
- "CPAD_HTTP2_DISABLE=true"
|
||||
- "CPAD_TRUST_PROXY=1"
|
||||
- "CPAD_CONF=/cryptpad/config/config.js"
|
||||
# SSO plugin
|
||||
- SSO_PLUGIN_VERSION
|
||||
- "SSO_ENABLED=${SSO_ENABLED:-false}"
|
||||
- SSO_ENFORCED
|
||||
- SSO_PROVIDER_NAME
|
||||
- SSO_OIDC_URL
|
||||
- SSO_CLIENT_ID
|
||||
- SSO_JWT_ALG
|
||||
secrets:
|
||||
- sso_client_s
|
||||
volumes:
|
||||
- cryptpad_blob:/cryptpad/blob
|
||||
- cryptpad_block:/cryptpad/block
|
||||
@ -34,15 +23,9 @@ services:
|
||||
- cryptpad_data:/cryptpad/data
|
||||
- cryptpad_files:/cryptpad/datastore
|
||||
- cryptpad_config:/cryptpad/config/
|
||||
- cryptpad_plugins:/cryptpad/lib/plugins
|
||||
configs:
|
||||
- source: config_js
|
||||
target: /cryptpad/config/config.js
|
||||
- source: sso_entrypoint
|
||||
target: /sso-entrypoint.sh
|
||||
mode: 0755
|
||||
- source: sso_js
|
||||
target: /sso.js.tmpl
|
||||
|
||||
deploy:
|
||||
restart_policy:
|
||||
@ -50,7 +33,7 @@ services:
|
||||
labels:
|
||||
- "traefik.enable=false"
|
||||
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
||||
- "coop-cloud.${STACK_NAME}.version=0.5.0+v2026.2.0"
|
||||
- "coop-cloud.${STACK_NAME}.version=0.5.2+v2026.2.0"
|
||||
- "backupbot.backup=true"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
||||
@ -93,12 +76,6 @@ volumes:
|
||||
cryptpad_data:
|
||||
cryptpad_files:
|
||||
cryptpad_config:
|
||||
cryptpad_plugins:
|
||||
|
||||
secrets:
|
||||
sso_client_s:
|
||||
external: true
|
||||
name: ${STACK_NAME}_sso_client_s_${SSO_CLIENT_SECRET_VERSION}
|
||||
|
||||
configs:
|
||||
config_js:
|
||||
@ -109,10 +86,3 @@ configs:
|
||||
name: ${STACK_NAME}_nginx_conf_${NGINX_CONF_VERSION}
|
||||
file: nginx.conf.tmpl
|
||||
template_driver: golang
|
||||
sso_entrypoint:
|
||||
name: ${STACK_NAME}_sso_entrypoint_${SSO_ENTRYPOINT_VERSION}
|
||||
file: sso-entrypoint.sh
|
||||
sso_js:
|
||||
name: ${STACK_NAME}_sso_js_${SSO_JS_VERSION}
|
||||
file: sso.js.tmpl
|
||||
template_driver: golang
|
||||
|
||||
@ -16,8 +16,8 @@ VERSION_FILE="${PLUGIN_DIR}/.version"
|
||||
SSO_PLUGIN_VERSION="${SSO_PLUGIN_VERSION:-0.4.0}"
|
||||
|
||||
# Copy SSO config template into place (mounted as Docker config)
|
||||
if [ -f /sso.js.tmpl ]; then
|
||||
cp /sso.js.tmpl /cryptpad/config/sso.js
|
||||
if [ -f /sso.js ]; then
|
||||
cp /sso.js /cryptpad/config/sso.js
|
||||
echo "[sso-entrypoint] Copied sso.js config into /cryptpad/config/sso.js"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user