{"id":21343271,"url":"https://github.com/dispherical/yatcm","last_synced_at":"2025-03-16T03:13:18.834Z","repository":{"id":254516093,"uuid":"846777949","full_name":"dispherical/yatcm","owner":"dispherical","description":"Yet another tilde caddy manager","archived":false,"fork":false,"pushed_at":"2024-09-06T04:53:30.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T10:47:36.327Z","etag":null,"topics":["caddy","dn42","tilde"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/dispherical.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":"2024-08-24T00:03:08.000Z","updated_at":"2024-09-06T04:53:33.000Z","dependencies_parsed_at":"2024-10-27T13:59:00.202Z","dependency_job_id":null,"html_url":"https://github.com/dispherical/yatcm","commit_stats":null,"previous_names":["aboutdavid/yatcm","dispherical/yatcm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dispherical%2Fyatcm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dispherical%2Fyatcm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dispherical%2Fyatcm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dispherical%2Fyatcm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dispherical","download_url":"https://codeload.github.com/dispherical/yatcm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243818199,"owners_count":20352629,"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":["caddy","dn42","tilde"],"created_at":"2024-11-22T01:12:43.184Z","updated_at":"2025-03-16T03:13:18.787Z","avatar_url":"https://github.com/dispherical.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yatcm\n\nYet another tilde caddy manager. Runs with [bun](https://bun.sh). This allows your tilde instance users to configure Caddy at the top level themselves instead of having to beg an admin to do it. Supports domain verification for custom domains and the [Burble CA](https://dn42.burble.com/services/ca/) for dn42 domains out of the box.\n\n## Configuration\n\n### Caddy configuration over HTTP\nThis isn't reccommended if you're using a tilde as anyone can access it then.\n\nSet your .env to this:\n\n```bash\nCADDY_ADMIN_PATH=\"http://localhost:2019/load\"\n# Or whatever port you chose for Caddy admin\n```\n### Caddy configuration over Unix Socket\nThis is better as you can control access to the socket.\n\n```bash\n# Leave CADDY_ADMIN_PATH alone.\nCADDY_ADMIN_PATH=\"http://localhost/load\"\nCADDY_SOCKET_PATH=\"unix//run/caddy/caddy-admin.sock\"\n# Specify where you put your socket at.\n```\n\nPlease protect your socket by only allowing admins/root to access it.\n\n\n## Setup\n1. Clone yactm to a safe location only root/admins can access.\n   ```bash\n   git clone https://github.com/aboutdavid/yactm.git\n   ```\n2. Modify your sudoers file to allow the execution of yactm as sudo.\n   ```bash\n   ALL ALL=(ALL) NOPASSWD: /var/run/yatcm/index.js\n   ```\n3. Add a link to yactm in your `/usr/bin`.\n   ```bash\n   #!/bin/bash\n   sudo bun /var/run/yatcm/index.js\n   ```\n4. (optional) If you provide your users any subdomains, create a file called `.whitelist` and put a newline seperated list of domains, such as:\n   ```bash\n   *.freedomains.com\n   *.freedomains.org\n   ```\n   Important: Put an astrisk where the subdomain goes!\n5. Install the node modules.\n   ```bash\n   bun install\n   ```\n6. Modify the schema.prisma and create the database structure.\n   ```\n   npx prisma db push\n   ```\n7. You're done!\n\n## Commands\n```\nUsage: yatcm [options] [command]\n\nYet another tilde caddy manager\n\nOptions:\n  -V, --version           output the version number\n  -h, --help              display help for command\n\nCommands:\n  list                    lists all domains you have configured in caddy\n  add [options] \u003cdomain\u003e  adds a domain to caddy (Use --proxy to proxy to another socket or URL)\n  rm \u003cdomain\u003e             removes a domain from caddy\n  help [command]          display help for command\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdispherical%2Fyatcm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdispherical%2Fyatcm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdispherical%2Fyatcm/lists"}