Compare commits
1 Commits
ci/testme
...
0.5.1+v202
| Author | SHA1 | Date | |
|---|---|---|---|
| be1b79b31c |
@ -1 +0,0 @@
|
||||
cc-ci test trigger
|
||||
@ -1,6 +1,5 @@
|
||||
TYPE=cryptpad
|
||||
|
||||
COMPOSE_FILE="compose.yml"
|
||||
|
||||
DOMAIN=cryptpad.example.com
|
||||
|
||||
@ -18,12 +17,7 @@ SANDBOX_DOMAIN=sandbox.cryptpad.example.com
|
||||
#EXTRA_DOMAINS=', `www.cryptpad.example.com`'
|
||||
LETS_ENCRYPT_ENV=production
|
||||
|
||||
## Set to true to block unregistered users from accessing any CryptPad applications
|
||||
## See https://docs.cryptpad.org/en/admin_guide/customization.html#restricting-guest-access
|
||||
#RESTRICT_GUEST_ACCESS=false
|
||||
|
||||
## SSO / OIDC (optional — uncomment below and add compose.sso.yml to COMPOSE_FILE to enable)
|
||||
# COMPOSE_FILE="$COMPOSE_FILE:compose.sso.yml"
|
||||
## SSO / OIDC (optional — defaults to false)
|
||||
#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**: Yes
|
||||
* **SSO**: No
|
||||
|
||||
<!-- endmetadata -->
|
||||
|
||||
@ -40,31 +40,5 @@ 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
|
||||
1
abra.sh
1
abra.sh
@ -3,4 +3,3 @@ export CONFIG_JS_VERSION=v2
|
||||
export NGINX_CONF_VERSION=v1
|
||||
export SSO_ENTRYPOINT_VERSION=v6
|
||||
export SSO_JS_VERSION=v3
|
||||
export APP_CONFIG_JS_VERSION=v1
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
// CryptPad application customization — generated from environment variables
|
||||
// See https://docs.cryptpad.org/en/admin_guide/customization.html
|
||||
// For default file, see: https://github.com/cryptpad/cryptpad/blob/main/customize.dist/application_config.js
|
||||
|
||||
(() => {
|
||||
const factory = (AppConfig) => {
|
||||
{{ if eq (env "RESTRICT_GUEST_ACCESS") "true" }}
|
||||
// Block unregistered users from accessing any applications
|
||||
AppConfig.registeredOnlyTypes = AppConfig.availablePadTypes.slice();
|
||||
{{ end }}
|
||||
|
||||
return AppConfig;
|
||||
};
|
||||
|
||||
// Do not change code below
|
||||
if (typeof(module) !== 'undefined' && module.exports) {
|
||||
module.exports = factory(
|
||||
require('../www/common/application_config_internal.js')
|
||||
);
|
||||
} else if ((typeof(define) !== 'undefined' && define !== null) && (define.amd !== null)) {
|
||||
define(['/common/application_config_internal.js'], factory);
|
||||
}
|
||||
|
||||
})();
|
||||
@ -1,41 +0,0 @@
|
||||
---
|
||||
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
|
||||
37
compose.yml
37
compose.yml
@ -4,6 +4,7 @@ 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
|
||||
@ -16,7 +17,16 @@ services:
|
||||
- "CPAD_HTTP2_DISABLE=true"
|
||||
- "CPAD_TRUST_PROXY=1"
|
||||
- "CPAD_CONF=/cryptpad/config/config.js"
|
||||
- "RESTRICT_GUEST_ACCESS=${RESTRICT_GUEST_ACCESS:-false}"
|
||||
# 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
|
||||
@ -24,11 +34,15 @@ 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: app_config_js
|
||||
target: /cryptpad/customize/application_config.js
|
||||
- source: sso_entrypoint
|
||||
target: /sso-entrypoint.sh
|
||||
mode: 0755
|
||||
- source: sso_js
|
||||
target: /sso.js
|
||||
|
||||
deploy:
|
||||
restart_policy:
|
||||
@ -36,7 +50,7 @@ services:
|
||||
labels:
|
||||
- "traefik.enable=false"
|
||||
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
||||
- "coop-cloud.${STACK_NAME}.version=0.5.4+v2026.2.0"
|
||||
- "coop-cloud.${STACK_NAME}.version=0.5.1+v2026.2.0"
|
||||
- "backupbot.backup=true"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
||||
@ -79,6 +93,12 @@ 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:
|
||||
@ -89,7 +109,10 @@ configs:
|
||||
name: ${STACK_NAME}_nginx_conf_${NGINX_CONF_VERSION}
|
||||
file: nginx.conf.tmpl
|
||||
template_driver: golang
|
||||
app_config_js:
|
||||
name: ${STACK_NAME}_app_config_js_${APP_CONFIG_JS_VERSION}
|
||||
file: application_config.js.tmpl
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user