codimd icon indicating copy to clipboard operation
codimd copied to clipboard

404 errors when using CMD_URL_PATH in new 2.6.0

Open esteveavi opened this issue 5 months ago • 1 comments

Hello,

When configuring CMD_URL_PATH to some value 404 appears on internal resources like js, favicon, and the app is not working.

Here is an example of docker-componse: services: database: image: postgres:11.6-alpine environment: - POSTGRES_USER=codimd - POSTGRES_PASSWORD=change_password - POSTGRES_DB=codimd volumes: - "database-data:/var/lib/postgresql/data" restart: always codimd: build: context: . args: - CMD_URL_PATH=codimd image: nabo.codimd.dev/hackmdio/hackmd:2.6.0 environment: - CMD_DB_URL=postgres://codimd:change_password@database/codimd - CMD_USECDN=true - CMD_URL_PATH=codimd - CMD_DOMAIN=localhost - CMD_PROTOCOL_USESSL=false - CMD_URL_ADDPORT=true depends_on: - database ports: - "3000:3000" volumes: - upload-data:/home/hackmd/app/public/uploads restart: always volumes: database-data: {} upload-data: {}

http://localhost:3000/codimd/build/font.68d91a5a4c1afd7f82a9.css --> 404 http://localhost:3000/codimd/build/cover.65bca5da2232a62861ce.css |  --> 404 .....

Do I miss something?

Thanks

esteveavi avatar Jul 29 '25 14:07 esteveavi

You should probably use a reverse proxy like nginx or Caddy to host your CodiMD application. Below is an example config:


server {
    listen 80;
    server_name yourdomain.com;

    # Redirect root to /codimd/
    location = / {
        return 301 /codimd/;
    }

    # Redirect /codimd to /codimd/
    location = /codimd {
        return 301 /codimd/;
    }

    # Handle /codimd/* requests
    location /codimd/ {
        # Strip /codimd prefix before forwarding
        rewrite ^/codimd/(.*)$ /$1 break;
        
        proxy_pass http://codimd:3000;  # Your CodiMD container
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Prefix /codimd;
        
        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

# WebSocket upgrade map
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

Yukaii avatar Sep 30 '25 08:09 Yukaii