{"id":13819015,"url":"https://github.com/joelewis/hexopress","last_synced_at":"2026-02-09T16:12:53.522Z","repository":{"id":18416931,"uuid":"84243697","full_name":"joelewis/hexopress","owner":"joelewis","description":"A tiny blogging platform that lets you write posts in Google Docs and syncs with a Google Drive directory.","archived":false,"fork":false,"pushed_at":"2022-11-04T19:14:25.000Z","size":490,"stargazers_count":212,"open_issues_count":12,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-12-20T00:02:29.432Z","etag":null,"topics":["blog-engine","django","google-docs","google-drive","python","react"],"latest_commit_sha":null,"homepage":"https://hexo.press","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joelewis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-07T20:37:11.000Z","updated_at":"2024-11-05T18:50:42.000Z","dependencies_parsed_at":"2023-01-11T20:20:55.511Z","dependency_job_id":null,"html_url":"https://github.com/joelewis/hexopress","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/joelewis%2Fhexopress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelewis%2Fhexopress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelewis%2Fhexopress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelewis%2Fhexopress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joelewis","download_url":"https://codeload.github.com/joelewis/hexopress/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254469179,"owners_count":22076448,"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":["blog-engine","django","google-docs","google-drive","python","react"],"created_at":"2024-08-04T08:00:37.744Z","updated_at":"2026-02-09T16:12:53.471Z","avatar_url":"https://github.com/joelewis.png","language":"Python","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"# hexopress\nA tiny blogging platform that lets you write posts in Google Docs and syncs with a Google Drive directory.\n\nThis project is directly based upon the amazing [Octopress](http://octopress.org) project. However, I wanted a way to keep writing my posts in Google Docs, which is a good place to write \u0026 retain blog posts, and publish a Octopress blog out them. This project is a way forward, towards scratching that itch.   \n\n## What is HexoPress?\nHexoPress is a web layer that authenticates the user with google, takes their blog posts from a folder in their google drive, generate a static blog out of it and serves them at a URL.\n\n## Dev Setup\nInstall dependencies:\n* Pandoc - http://pandoc.org/\n* Ruby - http://rvm.io/\n* Git - https://git-scm.com/\n* Bundler - `gem install bundler`\n* Octopress - http://octopress.org\n* Redis - http://redis.org\n\n### Project Setup:  \n\nClone the repo `$ git clone https://github.com/joelewis/hexopress`  \n\nCreate a python virtual env and install python dependencies into it.  \n`$ virtualenv --distribute venv`  \n`$ . venv/bin/activate`  \n`$ pip install -r requirements.txt`  \n\nSetup an Octopress instance - [http://octopress.org/docs/setup/](http://octopress.org/docs/setup/).\n\nRename `hexopress/sample_settings.py` to `hexopress/settings.py`\n\nEdit `settings.py` to suit yours.\n\n### Run Server\n\nRun Interface Server:  \n`daphne hexopress.asgi:channel_layer -b 0.0.0.0 -p 8000`\n\nRun workers for websockets/http handling:  \n`python manage.py runworker -v 2`  \n\nRun celery worker:  \n`celery -A hexopress worker` \n\nNow, pointing your browser to http://localhost:8000 should land it to your dev instance.\n\n### Production setup\n\nEdit settings.py to match your production config especially `settings.ALLOWED_HOSTS, settings.HOST and settings.CLIENT_SECRET (for google auth)`\nUse a process manager like supervisord to manage your processes. \n\nSample supervisord config\n```\n[program:daphne]\ncommand = sh daphne.sh\nstdout_logfile = /home/username/daphne.log\nredirect_stderr = true\ndirectory = /home/username/hexopress\n\n[program:worker]\ncommand = sh worker.sh\nstdout_logfile = /home/username/worker.log\nredirect_stderr = true\ndirectory = /home/username/hexopress\n\n[program:celery]\ncommand = sh celery.sh\nstdout_logfile = /home/username/celery.log\nredirect_stderr = true\ndirectory = /home/username/hexopress\n``` \n\nMake sure to run `python manage.py migrate` once before starting the server. Without this your database will have no tables created yet. \n\n\n\n\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoelewis%2Fhexopress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoelewis%2Fhexopress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoelewis%2Fhexopress/lists"}