{"id":20500077,"url":"https://github.com/zevaverbach/publify","last_synced_at":"2026-06-06T10:32:07.737Z","repository":{"id":149505724,"uuid":"621857960","full_name":"zevaverbach/publify","owner":"zevaverbach","description":"A CLI for publishing sites to Netlify and assigning custom subdomains to them.","archived":false,"fork":false,"pushed_at":"2023-04-02T19:26:57.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T19:13:43.800Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/zevaverbach.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}},"created_at":"2023-03-31T14:36:54.000Z","updated_at":"2023-08-03T19:13:25.000Z","dependencies_parsed_at":"2023-04-11T11:56:05.390Z","dependency_job_id":null,"html_url":"https://github.com/zevaverbach/publify","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/zevaverbach%2Fpublify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevaverbach%2Fpublify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevaverbach%2Fpublify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevaverbach%2Fpublify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zevaverbach","download_url":"https://codeload.github.com/zevaverbach/publify/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242090832,"owners_count":20070235,"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":[],"created_at":"2024-11-15T18:19:43.442Z","updated_at":"2025-03-05T19:29:12.435Z","avatar_url":"https://github.com/zevaverbach.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What Can Publify Do?\n\nThe coolest thing `publify` can do is publish a folder of static web pages and supporting assets to the web using Netlify, including adding a custom subdomain!\n\nHere's the full menu, though, with more details under the headings below:\n\n```bash\n\u003e pub help\n\nUsage:\n    pub help\n    pub \u003crootpath\u003e [\u003ccustom_domain\u003e]             --------------------------------\u003e deploy a site\n    pub list                                     -------------------------------\u003e list all sites\n    pub custom \u003ccustom_domain\u003e \u003cexisting_domain\u003e --------------------------\u003e set a custom domain\n    pub remove-custom \u003ccustom_domain\u003e            -----------------------\u003e remove a custom domain\n    pub delete/remove \u003cdomain or custom_domain\u003e  --------------------------------\u003e delete a site\n```\n\n## Publish Sites to Netlify via CLI!\n\n```bash\n\u003e ls mysite\n└── folder\n    ├── index.html\n    ├── another_page.html\n    ├── styles.css\n    └── a.jpg\n\u003e\n\u003e pub mysite/\nthe site is published: http://6426ed336771f2380224fb84--scintillating-mochi-760bd3.netlify.app\n```\n\n## Publish Sites to Netlify With Custom Subdomains Too!\n\n```bash\n\u003e pub mysite dude.helpers.fun\nthe site is published: http://6426ee6a10e4e43866b46a42--startling-gingersnap-425138.netlify.app\nthe site is published at dude.helpers.fun.\n```\n\nIf you only have one domain set up with Netlify, there's no need to include anything but the subdomain part:\n\n```bash\n\u003e pub mysite/ dudette\nthe site is published: http://642718842cb34f02bc6b0137--cheery-daifuku-f3417f.netlify.app\nthe site is published at dudette.helpers.fun.\n```\n\n## List All Your Sites!\n\n```bash\n\u003e pub list\n\nsites without custom domains:\n\ncheery-daifuku-f3417f: https://cheery-daifuku-f3417f.netlify.app\npreeminent-salamander-6262a7: http://preeminent-salamander-6262a7.netlify.app\nscintillating-mochi-760bd3: https://scintillating-mochi-760bd3.netlify.app\ntranscribely: https://transcribely.netlify.app\n\nsites with custom domains:\n\neuphonious-torrone-029b78: https://shucks.helpers.fun\nflourishing-sherbet-8f356e: https://dudettes.helpers.fun\nbeautiful-meerkat-95c24f: https://duasdfdes.helpers.fun\nglittery-khapse-b51104: https://dudes.helpers.fun\nvelvety-cobbler-d4e023: https://mama.helpers.fun\nplayful-treacle-6fea54: https://okay.helpers.fun\ncalm-dodol-b7aea3: https://thedonkey.helpers.fun\n```\n\n## Add A Custom Subdomain To An Already Published Site!\n\n```bash\n\u003e pub custom hey.helpers.fun preeminent-salamander-6262a7.netlify.app\nthe site is published at hey.helpers.fun. (originally 'preeminent-salamander-6262a7.netlify.app')\n```\n\nYou can also provide partial names for the Netlify URLs, and also for the custom domains if you only have one domain listed in `NETLIFY_DOMAINS`:\n\n```bash\n\u003e pub custom hey preeminent\nthe site is published at hey.helpers.fun. (originally 'preeminent-salamander-6262a7.netlify.app')\n```\n\n## Remove a Custom Subdomain!\n\n```bash\n\u003e pub remove-custom hey\n'hey.helpers.fun' was removed\n```\n\n## Delete An Entire Site!\n\nPowerful stuff:\n\n```bash\n\u003e pub delete preeminent\nsite 'http://preeminent-salamander-6262a7.netlify.app' was deleted\n```\n\n\n# But First, a Bit of Configuration\n\nTo do this magic, you have to first\n\n1) Create an environment variable `NETLIFY_TOKEN`, obtained [here](https://app.netlify.com/user/applications#personal-access-tokens).\n1) Create an environment variable `NETLIFY_DOMAINS`, with comma-separated values (no spaces), if you're planning to use custom domains.\n1) Delegate DNS management of all domains listed in `DOMAINS` to Netlify ([link](https://docs.netlify.com/domains-https/netlify-dns/delegate-to-netlify/))\n\n# TODO\n- [ ] add some color and spinners to the CLI using Rich\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzevaverbach%2Fpublify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzevaverbach%2Fpublify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzevaverbach%2Fpublify/lists"}