{"id":18355448,"url":"https://github.com/charto/blog-setup","last_synced_at":"2026-02-14T21:32:23.687Z","repository":{"id":88491767,"uuid":"130540125","full_name":"charto/blog-setup","owner":"charto","description":null,"archived":false,"fork":false,"pushed_at":"2018-08-05T10:51:29.000Z","size":30,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-11T01:46:18.234Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/charto.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":"2018-04-22T06:06:03.000Z","updated_at":"2019-02-11T16:29:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"cdc14f8e-e396-4d17-88c9-4a4b9049610f","html_url":"https://github.com/charto/blog-setup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/charto/blog-setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charto%2Fblog-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charto%2Fblog-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charto%2Fblog-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charto%2Fblog-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charto","download_url":"https://codeload.github.com/charto/blog-setup/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charto%2Fblog-setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29456247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T21:29:27.764Z","status":"ssl_error","status_checked_at":"2026-02-14T21:28:11.111Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-05T22:06:57.273Z","updated_at":"2026-02-14T21:32:23.670Z","avatar_url":"https://github.com/charto.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# blog-setup\n\nCollection of scripts for setting up [Ghost](https://ghost.org/) and [NodeBB](https://nodebb.org/) inside [Docker](https://www.docker.com/).\n\nFor more information, see the [installation instructions blog post](https://charto.net/blog/blog-setup/) hosted using this exact setup.\nWith this repo you should have it all running in under 15 minutes!\n\nThe end result right out of the box will look like this:\n\n[**Blog**](https://charto.net/blog/)\n\n![Blog main page](https://user-images.githubusercontent.com/778781/39398239-a86cb39e-4b13-11e8-8857-6fdf2ea653d2.png)\n\n**Blog admin**\n\n![Blog admin page](https://user-images.githubusercontent.com/778781/39398240-abf676da-4b13-11e8-815f-4ea6aafa7505.png)\n\n[**Forum**](https://charto.net/forum/)\n\n![Forum main page](https://user-images.githubusercontent.com/778781/39398241-b1459f26-4b13-11e8-90b5-440c96882ae7.png)\n\n**Forum admin**\n\n![Forum admin page](https://user-images.githubusercontent.com/778781/39398243-b3bfbf16-4b13-11e8-93d6-7093ea45ec2d.png)\n\n## Installation\n\nYou need an Ubuntu system for easiest setup. It should probably be a virtual machine hosted somewhere.\nFirst SSH to your server like this (or run it locally):\n\n```bash\nssh -L 8443:127.0.0.1:443 -L 2368:127.0.0.1:2368 -L 4567:127.0.0.1:4567 xxx.xxx.xxx.xxx\n```\n\nReplace the `xxx`'s with your IP. The extra `-L` port forwarding flags are for gaining private access\nto the blog and forum for setting up admin passwords before making the site public.\n\nThen set up Docker:\n\n```bash\nsudo apt-get update\nsudo apt-get install software-properties-common\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\"\n\nsudo apt-get update\nsudo apt-get install -y docker-ce\n```\n\nThen set up the blog, forum and database:\n\n```bash\nsudo mkdir -p /opt/blog\nsudo chown --reference ~ /opt/blog\nchmod a+rX /opt/blog\ncd /opt/blog\ngit clone https://github.com/charto/blog-setup.git .\nsudo ./setup.sh\n```\n\nFinally, you can see it run:\n\n- [localhost:2368/blog/](http://localhost:2368/blog/)\n- [localhost:4567/forum/](http://localhost:4567/forum/)\n\nPlease see the [blog post](https://charto.net/blog/blog-setup/)\nregarding finishing touches before making it public.\n\n# License\n\n[Unlicense](https://raw.githubusercontent.com/charto/blog-setup/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharto%2Fblog-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharto%2Fblog-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharto%2Fblog-setup/lists"}