{"id":14065261,"url":"https://github.com/rmed/akamatsu","last_synced_at":"2026-03-03T02:39:47.085Z","repository":{"id":152103658,"uuid":"61629449","full_name":"rmed/akamatsu","owner":"rmed","description":"My small CMS made in Flask","archived":false,"fork":false,"pushed_at":"2023-05-01T21:13:03.000Z","size":7825,"stargazers_count":10,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T14:41:55.594Z","etag":null,"topics":["blog","cms","flask","python","web"],"latest_commit_sha":null,"homepage":null,"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/rmed.png","metadata":{"files":{"readme":"README.md.old","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}},"created_at":"2016-06-21T11:43:21.000Z","updated_at":"2023-04-26T22:31:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"dc0db3af-d092-4f30-b1a2-e5c42a8a43f2","html_url":"https://github.com/rmed/akamatsu","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/rmed%2Fakamatsu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmed%2Fakamatsu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmed%2Fakamatsu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmed%2Fakamatsu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rmed","download_url":"https://codeload.github.com/rmed/akamatsu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251674959,"owners_count":21625709,"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","cms","flask","python","web"],"created_at":"2024-08-13T07:04:23.700Z","updated_at":"2026-03-03T02:39:47.036Z","avatar_url":"https://github.com/rmed.png","language":"Python","readme":"# ![akamatsu](akamatsu/static/favicon/android-chrome-192x192.png) Akamatsu\n\nMy small CMS made in Flask\n\n  * [Installation](#installation)\n  * [Dashboard](#dashboard)\n  * [Configuration variables](#configuration-variables)\n  * [Database migrations](#database-migrations)\n  * [Acknowledgements](#acknowledgements)\n\n\n## Installation\n\nIt is recommended to use `virtualenv` to managed the dependencies for akamatsu:\n\n```\n$ virtualenv -p python3 /path/to/venv\n$ . /path/to/venv/bin/activate\n$ pip install -r requirements.txt\n```\n\n## Dashboard\n\nThrough the dashboard you can create new pages and blog posts. It can be\naccessed through the `/dashboard` route.\n\nYou can specify roles for existing users:\n\n- `admin`: can manage blog, pages, files and users\n- `editor`: can manage pages\n- `blogger`: can manage their own blog posts\n- `uploader`: can manage their own files (future)\n- `superblogger`: can manage all blog posts\n- `superuploader`: can manage all files (future)\n\n## Configuration variables\n\nIn development environment, the application loads the `config/development.py`\nconfiguration file. However, in production environments you should provide the\npath to your configuration file by means of the `AKAMATSU_CONFIG_FILE`\nenvironment variable.\n\nBelow is a list of settings specific to the application (the rest of them\nbelong to Flask extensions).\n\n**Note that most of them can be modified during runtime using the\nFlask-WaffleConf extension through the dashboard**.\n\n### `SITENAME`\n\nThis defines the name of the site used in several templates, defaults to\n`'akamatsu'`.\n\n### `THEME`\n\nIt is virtually possible to use other templates rather than the ones provided\nby default. This can be achieved by placing custom templates in a directory\nsuch as `templates/my_theme` and changing the value of `THEME` to `'my_theme'`.\nThis defaults to the `'akamatsu'` theme.\n\n### `FOOTER_LEFT` and `FOOTER_RIGHT`\n\nContent (html) that appears in the bottom left and right parts of the page in\nthe akamatsu templates.\n\n### `COMMENT_SYSTEM`\n\nAkamatsu supports Disqus and [isso](https://github.com/posativ/isso) for\ncomments.\n\nSet this value to `'disqus'` or `'isso'` accordingly (or leave blank to disable\ncomments).\n\n### `DISQUS_SHORTNAME`\n\nShortname to enable Disqus comments in blog and pages (when `COMMENT_SYSTEM` is\n`'disqus'`).\n\n### `ISSO_URL`\n\nURL where the isso API is located (when `COMMENT_SYSTEM` is `'isso'`).\n\n### `ISSO_REPLY_SELF`\n\nWhether to enable replying to self (when `COMMENT_SYSTEM` is `'isso'`).\nDepends on isso server guard config.\n\n**Note that this value is set as a string rather than a boolean, as it is used \nto configure the JS script** (valid values are `'true'` or `'false'`).\n\n### `ISSO_REQUIRE_AUTHOR`\n\nWhether to require author name when commenting (when `COMMENT_SYSTEM` is\n`'isso'`). Depends on isso server guard config.\n\n**Note that this value is set as a string rather than a boolean, as it is used \nto configure the JS script** (valid values are `'true'` or `'false'`).\n\n### `ISSO_REQUIRE_EMAIL`\n\nWhether to require an email when commenting (when `COMMENT_SYSTEM` is\n`'isso'`). Depends on isso server guard config.\n\n**Note that this value is set as a string rather than a boolean, as it is used \nto configure the JS script** (valid values are `'true'` or `'false'`).\n\n### `ISSO_VOTING`\n\nWhether to enable voting in comments (when `COMMENT_SYSTEM` is `'isso'`).\nDepends on isso server guard config.\n\n**Note that this value is set as a string rather than a boolean, as it is used \nto configure the JS script** (valid values are `'true'` or `'false'`).\n\n### `HUMANS_TXT` and `ROBOTS_TXT`\n\nPlain text content for the `/humans.txt` and `/robots.txt` pages.\n\n### `UPLOAD_DIR`\n\nDirectory in which files will be uploaded. It should exist and be accessible to\nthe user executing the application.\n\n### `UPLOAD_SERVING_ROUTE`\n\nRoute used to serve the files. The application does not actually serve the\nfiles, so this setting is only used to create routes to files.\n\nThe recommended whay of serving files is to configure your web server to do so\nautomatically.\n\n### `ALLOWED_EXTENSIONS`\n\nFile extensions that can be uplodaded to the server.\n\n**This should be set through the dashboard**.\n\n### `MAX_CONTENT_LENGTH`\n\nMaximum filesize allowed. Note the default example:\n\n```\n16 * 1024 * 1024 = 16 MB\n```\n\n### `SOCIAL`\n\nList that contains links, and the icon representing those links, shown\nin the top right part of the page in the akamatsu theme.\n\n**This should be set through the dashboard**.\n\n**Note**: to specify a Font Awesome icon, do so without the `fa-` prefix, as it\nis appended automatically.\n\n### `NAVBAR`\n\nList that contains links, and the text representing those links, shown in the\ntop bar of the akamatsu theme.\n\n**This should be set through the dashboard**.\n\n## Database migrations\n\nDatabase versioning is done through `Flask-Migrate` / `alembic`. Note that the\nfirst migration also creates a default administrator user with the email\n`admin@example.com`. In order to override it, the migration should be preceded\nby the `AKAMATSU_EMAIL` environment variable:\n\n```\n$ AKAMATSU_EMAIL=my@email.com python app.py db upgrade\n```\n\nThis way, the user will be created using the email account provided and you\nwill be able to reset your password.\n\n**Note that you need to configure Flask-Mail in order to use the password reset\nfunctionality**.\n\n## Acknowledgements\n\n- [Cookie Consent](https://github.com/insites/cookieconsent) by Silktide Ltd\n  (MIT License)\n- [Fira](https://github.com/mozilla/Fira) by Mozilla (SIL OPEN FONT LICENSE\n  Version 1.1)\n- [Font Awesome](http://fontawesome.io/) by Dave Gandy (SIL OPEN FONT LICENSE\n  Version 1.1 and MIT LICENSE)\n- [Normalize.css](https://github.com/nercolas/normalize.css) by Nicolas\n  Gallagher and Jonathan Neal (MIT License)\n- [Simple-Grid](https://github.com/ThisIsDallas/Simple-Grid) by Dallas Bass\n  (MIT License)\n- [Zepto.js](http://zeptojs.com) by Thomas Fuchs (MIT License)\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmed%2Fakamatsu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frmed%2Fakamatsu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmed%2Fakamatsu/lists"}