{"id":21375044,"url":"https://github.com/nathanwoodburn/shakecities","last_synced_at":"2026-02-14T02:04:12.869Z","repository":{"id":208139984,"uuid":"720633325","full_name":"Nathanwoodburn/shakecities","owner":"Nathanwoodburn","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-20T06:00:38.000Z","size":666,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T09:24:21.363Z","etag":null,"topics":["handshake","handshake-domains","handshake-protocol","hns"],"latest_commit_sha":null,"homepage":"https://shakecities.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nathanwoodburn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-11-19T04:39:57.000Z","updated_at":"2023-11-19T23:34:42.000Z","dependencies_parsed_at":"2024-11-22T09:15:27.087Z","dependency_job_id":null,"html_url":"https://github.com/Nathanwoodburn/shakecities","commit_stats":null,"previous_names":["nathanwoodburn/shakecities"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Nathanwoodburn/shakecities","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2Fshakecities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2Fshakecities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2Fshakecities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2Fshakecities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nathanwoodburn","download_url":"https://codeload.github.com/Nathanwoodburn/shakecities/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2Fshakecities/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276931199,"owners_count":25730569,"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-25T02:00:09.612Z","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":["handshake","handshake-domains","handshake-protocol","hns"],"created_at":"2024-11-22T08:46:41.176Z","updated_at":"2025-09-25T14:25:21.582Z","avatar_url":"https://github.com/Nathanwoodburn.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShakeCities\nA joint project between Nathan.Woodburn/ and crymzyn/  \nShakeCities is a geocities clone with an emphasis on Handshake domains.  \nCreate a free site on yourname.shakecities/. You control that site and can add whatever you want to it.  \nEvery domain comes enabled with HTTPS via DANE. We have support HIP02 aliases, so you can send HNS to yourname.shakecities/  \n\n\n\n\n### Template testing\n\nReplace `new` with your template name\n\n```sh\ncd \u003cGit-REPONAME\u003e\n# Copy template\ncp templates/city_template.html templates/city_new.html\n# Edit template\n# Test site with template\npython3 -m pip install -r requirements.txt\npython3 template.py city_new\n```\n\nVisit http://127.0.0.1:5000/ to view the template  \nHere is a list of placeholders you can use [PLACEHOLDERS.md](PLACEHOLDERS.md)\n\n\n### Deployment\n```\nversion: '3'\nservices:\n  main:\n    image: git.woodburn.au/nathanwoodburn/shakecities:latest\n    depends_on:\n      - db\n    volumes:\n      - images:/data\n    environment:\n      DB_HOST: db\n      DB_USER: main\n      DB_PASSWORD: your-db-password\n      DB_NAME: main\n      CITY_DOMAIN: exampledomainnathan1\n      REG_KEY: \u003cyour-varo-apikey\u003e\n      CITY_ALIAS: city.hnshosting.au # ICANN domain that points to the IP for the cities server\n      MAIN_DOMAIN: cities.hnshosting.au\n      WORKERS: 2 # number of workers to run (should be 2 * number of cores)\n\n  sites:\n    image: git.woodburn.au/nathanwoodburn/shakecities-sites:latest\n    depends_on:\n      - db\n    environment:\n      DB_HOST: db\n      DB_USER: main\n      DB_PASSWORD: your-db-password\n      DB_NAME: main\n      MAIN_DOMAIN: cities.hnshosting.au\n      WORKERS: 2 # number of workers to run (should be 2 * number of cores)\n\n  db:\n    image: linuxserver/mariadb:latest\n    environment:\n      MYSQL_ROOT_PASSWORD: your-root-password\n      MYSQL_DATABASE: main\n      MYSQL_USER: main\n      MYSQL_PASSWORD: your-db-password\n    volumes:\n      - db_data:/var/lib/mysql\nvolumes:\n  db_data:\n  images:\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanwoodburn%2Fshakecities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnathanwoodburn%2Fshakecities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanwoodburn%2Fshakecities/lists"}