{"id":28262986,"url":"https://github.com/arulrajnet/uptime-kuma-subfolder-compose","last_synced_at":"2026-04-15T16:03:09.493Z","repository":{"id":293384588,"uuid":"982914770","full_name":"arulrajnet/uptime-kuma-subfolder-compose","owner":"arulrajnet","description":"Compose stack of uptime-kuma with subfolder support using entrypoint. ","archived":false,"fork":false,"pushed_at":"2025-05-15T03:43:59.000Z","size":320,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-21T02:20:01.888Z","etag":null,"topics":["docker-compose","nginx","proxy-prefix","uptime-kuma"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arulrajnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-13T15:35:42.000Z","updated_at":"2025-05-27T07:06:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"c03da775-e1ea-416f-b3e1-c707274df7ec","html_url":"https://github.com/arulrajnet/uptime-kuma-subfolder-compose","commit_stats":null,"previous_names":["arulrajnet/uptime-kuma-subfolder-compose"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arulrajnet/uptime-kuma-subfolder-compose","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arulrajnet%2Fuptime-kuma-subfolder-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arulrajnet%2Fuptime-kuma-subfolder-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arulrajnet%2Fuptime-kuma-subfolder-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arulrajnet%2Fuptime-kuma-subfolder-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arulrajnet","download_url":"https://codeload.github.com/arulrajnet/uptime-kuma-subfolder-compose/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arulrajnet%2Fuptime-kuma-subfolder-compose/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274314607,"owners_count":25262694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","nginx","proxy-prefix","uptime-kuma"],"created_at":"2025-05-20T07:13:22.682Z","updated_at":"2026-04-15T16:03:08.903Z","avatar_url":"https://github.com/arulrajnet.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Uptime Kuma with Subfolder Path\n\nThis repository provides a ready-to-use Docker Compose setup to run [Uptime Kuma](https://github.com/louislam/uptime-kuma) behind an Nginx reverse proxy with a subfolder path (`/kuma`).\n\n## Purpose\n\nDeploying Uptime Kuma under a subfolder (like `/kuma`) has been a common challenge as discussed in [Uptime Kuma issue #147](https://github.com/louislam/uptime-kuma/issues/147#issuecomment-2858297375). This project explain how it can be achieved using Docker Compose and Nginx.:\n\n- Configuring Nginx as a reverse proxy to serve Uptime Kuma under a subfolder\n- Providing a custom entrypoint script that modifies the necessary paths in the Uptime Kuma frontend\n- Setting up proper environment variables to make everything work together\n\nAdding support in the original Uptime Kuma will be a great improvement, but until then, this setup provides a workaround.\n\n## Quick Start\n\n### Prerequisites\n\n- Docker and Docker Compose installed on your system\n- Git (to clone this repository)\n\n### Setup Instructions\n\n1. Clone this repository:\n   ```bash\n   git clone https://github.com/arulrajnet/uptime-kuma-subfolder-compose.git\n   cd uptime-kuma-subfolder-compose\n   ```\n\n2. Make the entrypoint script executable:\n   ```bash\n   chmod +x entrypoint.sh\n   ```\n\n3. Start the services using Docker Compose:\n   ```bash\n   docker compose up -d\n   ```\n\n4. Access Uptime Kuma at:\n   ```\n   http://localhost:8080/kuma\n   ```\n\n![Uptime Kuma with subfolder path](./screenshot.png)\n\n## How It Works\n\n### Docker Compose Configuration\n\nThe `docker-compose.yml` file sets up:\n\n1. An Nginx service acting as a reverse proxy\n2. Uptime Kuma service configured to run under the `/kuma` path\n3. Persistent volume for Uptime Kuma data\n\nKey configurations in the Uptime Kuma service:\n- The `SERVER_CONTEXTPATH: \"/kuma\"` environment variable tells Uptime Kuma to use the subfolder\n- A custom entrypoint script modifies the frontend resources to work with the subfolder path\n\n### Nginx Configuration\n\nThe `kuma-nginx.conf` file configures Nginx to:\n\n1. Listen on port 8080\n2. Proxy requests from `/kuma` to the Uptime Kuma service\n3. Strip the `/kuma` prefix when forwarding requests\n4. Add the `/kuma` prefix back to response headers (like Location)\n\n```nginx\n# Key part of the configuration\nlocation /kuma {\n    # Strip /kuma prefix\n    rewrite ^/kuma/?(.*)$ /$1 break;\n\n    # Proxy to upstream service\n    proxy_pass http://kuma_service;\n}\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://x.com/arulrajnet\"\u003e\n    \u003cimg src=\"https://github.com/arulrajnet.png?size=100\" alt=\"Arulraj V\" width=\"100\" height=\"100\" style=\"border-radius: 50%;\" class=\"avatar-user\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cstrong\u003eArul\u003c/strong\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://x.com/arulrajnet\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Follow-%40arulrajnet-1DA1F2?style=for-the-badge\u0026logo=x\u0026logoColor=white\" alt=\"Follow @arulrajnet on X\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/arulrajnet\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/GitHub-arulrajnet-181717?style=for-the-badge\u0026logo=github\u0026logoColor=white\" alt=\"GitHub @arulrajnet\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://linkedin.com/in/arulrajnet\"\u003e\n    \u003cimg src=\"https://custom-icon-badges.demolab.com/badge/LinkedIn-arulrajnet-0A66C2?style=for-the-badge\u0026logo=linkedin-white\u0026logoColor=white\" alt=\"LinkedIn @arulrajnet\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farulrajnet%2Fuptime-kuma-subfolder-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farulrajnet%2Fuptime-kuma-subfolder-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farulrajnet%2Fuptime-kuma-subfolder-compose/lists"}