{"id":21044914,"url":"https://github.com/opusvl/http-maintenance","last_synced_at":"2026-05-08T05:45:14.725Z","repository":{"id":148071954,"uuid":"265340609","full_name":"OpusVL/http-maintenance","owner":"OpusVL","description":"Docker http maintenance page","archived":false,"fork":false,"pushed_at":"2020-05-27T14:07:52.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-20T17:34:59.302Z","etag":null,"topics":["docker","docker-compose","http-server","python3"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpusVL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-05-19T19:12:31.000Z","updated_at":"2020-05-27T14:07:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"20141a73-4cc2-41f0-bc55-4b7b6e11f370","html_url":"https://github.com/OpusVL/http-maintenance","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fhttp-maintenance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fhttp-maintenance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fhttp-maintenance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fhttp-maintenance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpusVL","download_url":"https://codeload.github.com/OpusVL/http-maintenance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243489835,"owners_count":20299001,"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","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","docker-compose","http-server","python3"],"created_at":"2024-11-19T14:19:08.755Z","updated_at":"2025-12-30T05:49:25.731Z","avatar_url":"https://github.com/OpusVL.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HTML Maintenance Page\n\nWe needed a simple HTTP 503 status page to let visitors know that the server is currently under maintenance.\n\nUsing a very basic python3 http.server we are able to redirect the external Nginx proxy to this simple web server.\n\n## Usage\n\nOptionally mount a folder into the `/var/www/html` folder to use your own static html pages - (html, css, images and JavaScript only).\n\nSample [docker-compose.yml](docker-compose.yml) included\n\n## nginx.conf snippets\n\nUsing the snippets from the `nginx.conf` we are able to turn maintenance on by changing the `geo {}` section value of default to `on`.\n\nThis gives a proper 503 temporarily unavailable response to visitors, ensuring that search engines and robots do not get confused by a normal 200 response.\n\nHowever visitors from the IP address subnets listed will not get passed to the maintenance server. We need to ensure that some systems can continue testing the real service and that some necessary connections like payment gateways are still able to function. Include all the addresses required in the `geo {}` section and specify that maintenance if `off`.\n\nThe rewrite in the `@maintenance` location ensures that all requests are redirected to the index page `/`.\n\n```config\ngeo $maintenance {\n    default off;\n    192.168.0.0/24 off;\n    10.0.1.0/24 off;\n}\n\nupstream maintenance {\n    server localhost:8080\n}\n\nserver {\n    listen 443 ssl;\n...\n\n    if ($maintenance = on) {\n        return 503;\n    }\n\n    error_page 503 @maintenance;\n\n    location @maintenance {\n        rewrite ^(.*)$ / break;\n        proxy_pass http://maintenance;\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopusvl%2Fhttp-maintenance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopusvl%2Fhttp-maintenance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopusvl%2Fhttp-maintenance/lists"}