{"id":16173354,"url":"https://github.com/rija/ghost-ssg","last_synced_at":"2025-03-19T00:30:48.461Z","repository":{"id":65437505,"uuid":"591983257","full_name":"rija/ghost-ssg","owner":"rija","description":"A Docker-based pipeline to publish the content of a local Ghost 4 server as static pages.","archived":false,"fork":false,"pushed_at":"2023-03-02T16:49:44.000Z","size":59,"stargazers_count":7,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T13:23:13.459Z","etag":null,"topics":["bash","blogging","cli","docker","docker-compose","ghost","ghost-cms","gitlab","integration","jamstack","nginx","nodejs","publishing","scraping-tool","self-hosted","static-site-generator","web-scraper","wget","workflow"],"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/rija.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-22T15:11:11.000Z","updated_at":"2024-10-10T16:37:07.000Z","dependencies_parsed_at":"2024-10-27T19:20:25.605Z","dependency_job_id":"3006c8f1-6683-419a-8242-b5f7a58c3d41","html_url":"https://github.com/rija/ghost-ssg","commit_stats":{"total_commits":70,"total_committers":2,"mean_commits":35.0,"dds":"0.014285714285714235","last_synced_commit":"91c147b2647d0229ff46ca558830230a960a1780"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rija%2Fghost-ssg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rija%2Fghost-ssg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rija%2Fghost-ssg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rija%2Fghost-ssg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rija","download_url":"https://codeload.github.com/rija/ghost-ssg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243955805,"owners_count":20374373,"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":["bash","blogging","cli","docker","docker-compose","ghost","ghost-cms","gitlab","integration","jamstack","nginx","nodejs","publishing","scraping-tool","self-hosted","static-site-generator","web-scraper","wget","workflow"],"created_at":"2024-10-10T04:08:28.070Z","updated_at":"2025-03-19T00:30:48.149Z","avatar_url":"https://github.com/rija.png","language":"Shell","readme":"# Ghost-ssg  \t\t\t\t\t\t\t\t\t[![tests](https://gitlab.com/gh-rija/ghost-ssg/badges/main/pipeline.svg)](https://gitlab.com/gh-rija/ghost-ssg/-/pipelines)\t[![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#ghost-ssg:gitter.im)\n\n\nA Docker-based pipeline to publish the content of a local Ghost 4 server as static pages.\n\n## How it works\n\n```\n┌──────────────────────────────┐                    ┌──────────────────────────────┐                        ┌──────────────────────────────┐                  ┌──────────────────────────────┐\n│                              │                    │                              │                        │                              │                  │                              │\n│                              │                    │                              │                        │                              │                  │                              │\n│                              │    export          │                              │      preview           │                              │   git push       │                              │\n│ Post editing and management  ├────────────────────► Static pages on file system  ├────────────────────────►Site served on local web server──────────────────►Site served on GitLab Pages   │\n│                              │                    │                              │                        │                              │                  │                              │\n│                              │                    │                              │                        │                              │                  │                              │\n└──────────────────────────────┘                    └──────────────────────────────┘                        └──────────────────────────────┘                  └──────────────────────────────┘\n```\n\n## Prerequisites\n\n1. You need to have installed on your system already:\n\n* Docker\n* bash\n* git\n* bats-core (optional, for running the test suite) \n\n2. To publish to remote destination, you need to have a git-enabled remote static page hosting setup and configured:\n\n| Host type | Needs done before | More infos |\n| -- | -- | -- |\n| Bitbucket | have created a new repository on Bitbucket.org| https://support.atlassian.com/bitbucket-cloud/docs/publishing-a-website-on-bitbucket-cloud/ |\n| Codeberg | have created a new public repo named \"pages\" on Codeberg.org | https://docs.codeberg.org/codeberg-pages/ |\n| GitHub | have followed instructions in the docs on Github.com | https://docs.github.com/en/pages/quickstart |\n| GitLab | have created a new project of type \"Pages/Plain HTML\" on GitLab.com | https://docs.gitlab.com/ee/user/project/pages/ |\n\n\u003e**Disclaimer:** at time of writing, I have only tested with GitLab.com (it may work on other GitLab-based forges - like framagit.org - , not sure for the other ones)\n\n## Usage\n\n1. Run the setup script:\n\n```\n$ ./setup\n```\nThen edit .env file to assign a value to ``DEST_REPO``, ensure the value for PAGES_REPO_PATH and DEST_BRANCH are correct\n\n\n2. Start the servers (the blog editor, the preview server and the backup server)\n\n```\n$ ./up\n```\nGhost is now available at http://localhost:2368\n\n3. Export the content of Ghost as static file for preview\n\n```\n$ ./preview\n```\n\nA preview of the static website can be viewed at http://localhost:9999\n\n4. Publish the content of Ghost\n\n```\n$ ./publish\n```\n\nThe static web pages are first exported in the ``public`` directory inside the directory defined by the $PAGES_REPO_PATH variable.\nThen the changes are commited and pushed to the remote git repository.\n\n7. Backup your installation\n\n```\n$ ./backup\n```\n\nThis will backup the SQL database and the content directory\n\n6. Shutdown the servers\n\n```\n$ ./down\n```\n\n## Troubleshooting\n\n* Show what server is up:\n\n```\n$ ./whatsup\n```\n\n* Inspect the server logs:\n\n```\n$ ./log\n```\n\n* Show the current versions of the dependencies\n\n```\n$ ./versions\n```\n\n* Run the test suite\n\n```\n$ ./test\n```\n\n* Restore from backup\n\n```\n$ ./restore\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frija%2Fghost-ssg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frija%2Fghost-ssg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frija%2Fghost-ssg/lists"}