Attempting to run penpot on a VM running docker, in preparation to run behind a reverse proxy.
Penpot accepts a username and password. When I get to the Enter Name prompt, nothing happens after entering my name the first time (no response to button click). On retrying to click the button “Something wrong has happened.” notification pops up.
The password reset works - I can reset my password. But, I still cannot log in. When I try, I get “Something wrong has happened.” I’ve tried clearing the volumes and resetting the containers.
I’m new here, so I can’t upload attachments or include URLs in posts, so the details below are scrubbed.
Console logs:
INF [app.main] message=“Welcome to penpot”, version=“2.0.0-13164-g33bdf5e83”, asserts=false, build-date=“Mon, 15 Apr 2024 18:30:09 +0000”, public-uri=“URL-to-penpot-public” impl.cljc:100:5
TRC [app.main.features] hint=“initialized features”, team=“”, runtime=“” impl.cljc:100:5
INF [app.rasterizer] hint=“initialized”, public-uri=“URL-to-penpot-public”, parent-uri=“URL-to-penpot-parent” impl.cljc:100:5
Password fields present on an insecure (http) page. This is a security risk that allows user login credentials to be stolen. URL-to-penpot-public
INF [app.worker.impl] hint=“configure worker”, key=:public-uri, val=“URL-to-penpot-public” impl.cljc:100:5
Password fields present on an insecure (http) page. This is a security risk that allows user login credentials to be stolen. URL-to-penpot-public
Cookie “auth-token” has been rejected because a non-HTTPS cookie can’t be set as “secure”. 2 register-profile
nil core.cljs:589
Password fields present on an insecure (http) page. This is a security risk that allows user login credentials to be stolen. URL-to-penpot-public
Password fields present on an insecure (http) page. This is a security risk that allows user login credentials to be stolen. URL-to-penpot-public
Cookie “auth-token” has been rejected because a non-HTTPS cookie can’t be set as “secure”. 2 login-with-password
Docker Compose
networks: penpot:volumes:
penpot_postgres_v15:
penpot_assets:
penpot_traefik:
penpot_minio:
services:
Traefik service declaration example. Consider using it if you are going to expose
penpot to the internet or different host than localhost
.
traefik:
container_name: reverse_proxy
image: traefik:v2.9
networks:
- penpot
command:
- “–api.insecure=true”
- “–entryPoints.web.address=:80”
- “–providers.docker=true”
- “–providers.docker.exposedbydefault=false”
volumes:
- “penpot_traefik:/traefik”
- “/var/run/docker.sock:/var/run/docker.sock”
ports:
- “80:80”
penpot-frontend:
container_name: penpot-frontend
image: “penpotapp/frontend:latest”
restart: always
ports:
- “9001:80”
volumes:
- penpot_assets:/opt/data/assets
depends_on:
- penpot-backend
- penpot-exporter
networks:
- penpot
labels:
- “traefik.enable=true”
# HTTP: example of labels for the case if you are going to expose penpot to the
# internet using only HTTP (without HTTPS) with traefik
- “traefik.http.routers.penpot-http.entrypoints=web”
- “traefik.http.routers.penpot-http.rule=Host(URL-to-penpot-host
)”
- “traefik.http.services.penpot-http.loadbalancer.server.port=80”
# HTTPS: example of labels for the case if you are going to expose penpot to the
# internet using with HTTPS using traefik
# - “traefik.http.middlewares.http-redirect.redirectscheme.scheme=https”
# - “traefik.http.middlewares.http-redirect.redirectscheme.permanent=true”
# - “traefik.http.routers.penpot-http.entrypoints=web”
# - “traefik.http.routers.penpot-http.rule=Host(URL-to-domain-name
)”
# - “traefik.http.routers.penpot-http.middlewares=http-redirect”
# - “traefik.http.routers.penpot-https.entrypoints=websecure”
# - “traefik.http.routers.penpot-https.rule=Host(URL-to-domain-name
)”
# - “traefik.http.services.penpot-https.loadbalancer.server.port=80”
# - “traefik.http.routers.penpot-https.tls=true”
# - “traefik.http.routers.penpot-https.tls.certresolver=letsencrypt”
environment:
# Configuration environment variables for frontend the container. In this case this
# container only needs the `PENPOT_FLAGS`. This environment variable is shared with
# other services but not all flags are relevant to all services.
- PENPOT_FLAGS=enable-registration enable-login-with-password
penpot-backend:
container_name: penpot-backend
image: “penpotapp/backend:latest”
restart: always
volumes:
- penpot_assets:/opt/data/assets
depends_on:
- penpot-postgres
- penpot-redis
networks:
- penpot
environment:
# Relevant flags for backend:
# - demo-users
# - email-verification
# - log-emails
# - log-invitation-tokens
# - login-with-github
# - login-with-gitlab
# - login-with-google
# - login-with-ldap
# - login-with-oidc
# - login-with-password
# - registration
# - secure-session-cookies
# - smtp
# - smtp-debug
# - telemetry
# - webhooks
# - prepl-server
#
# You can read more about all available flags and other
# environment variables for the backend here:
# URL-to-penpot-docs
#- PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification enable-smtp enable-prepl-server
- PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification enable-smtp enable-smtp-debug enable-prepl-server
- PENPOT_SECRET_KEY=silly-donkeys-fly-with-minnows
- PENPOT_PUBLIC_URI=URL-to-penpot-public
- PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot
- PENPOT_DATABASE_USERNAME=penpot
- PENPOT_DATABASE_PASSWORD=penpot
- PENPOT_REDIS_URI=redis://penpot-redis/0
- PENPOT_ASSETS_STORAGE_BACKEND=assets-fs
- PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets
- PENPOT_TELEMETRY_ENABLED=false
- PENPOT_SMTP_DEFAULT_FROM=no-reply@example.com
- PENPOT_SMTP_DEFAULT_REPLY_TO=no-reply@example.com
- PENPOT_SMTP_HOST=penpot-mailcatch
- PENPOT_SMTP_PORT=1025
- PENPOT_SMTP_USERNAME=
- PENPOT_SMTP_PASSWORD=
- PENPOT_SMTP_TLS=false
- PENPOT_SMTP_SSL=false
penpot-exporter:
container_name: penpot-exporter
image: “penpotapp/exporter:latest”
restart: always
networks:
- penpot
environment:
- PENPOT_PUBLIC_URI=URL-to-penpot-frontend
- PENPOT_REDIS_URI=redis://penpot-redis/0
penpot-postgres:
container_name: penpot-postgres
image: “postgres:15”
restart: always
stop_signal: SIGINT
volumes:
- penpot_postgres_v15:/var/lib/postgresql/data
networks:
- penpot
environment:
- POSTGRES_INITDB_ARGS=–data-checksums
- POSTGRES_DB=penpot
- POSTGRES_USER=penpot
- POSTGRES_PASSWORD=penpot
penpot-redis:
container_name: penpot-redis
image: redis:7
restart: always
networks:
- penpot
penpot-mailcatch:
container_name: penpot-mail
image: sj26/mailcatcher:latest
restart: always
expose:
- ‘1025’
ports:
- “1080:1080”
networks:
- penpot