When creating new account, can't get past entering name

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

Example configuration of MiniIO (S3 compatible object storage service); If you don’t

have preference, then just use filesystem, this is here just for the completeness.

minio:

image: “minio/minio:latest”

command: minio server /