{"id":17182086,"url":"https://github.com/jmtd/opinionated-ikiwiki","last_synced_at":"2025-04-13T17:51:45.318Z","repository":{"id":54766689,"uuid":"252701480","full_name":"jmtd/opinionated-ikiwiki","owner":"jmtd","description":"An opinionated, containerised IkiWiki","archived":false,"fork":false,"pushed_at":"2025-02-18T15:33:59.000Z","size":52,"stargazers_count":9,"open_issues_count":6,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T08:48:15.402Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmtd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2020-04-03T10:31:34.000Z","updated_at":"2025-02-18T15:34:04.000Z","dependencies_parsed_at":"2023-12-16T22:39:38.547Z","dependency_job_id":"5adad642-8cba-45f2-a1ed-e7fbfc69ab11","html_url":"https://github.com/jmtd/opinionated-ikiwiki","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fopinionated-ikiwiki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fopinionated-ikiwiki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fopinionated-ikiwiki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fopinionated-ikiwiki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmtd","download_url":"https://codeload.github.com/jmtd/opinionated-ikiwiki/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248758328,"owners_count":21156957,"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-10-15T00:35:57.298Z","updated_at":"2025-04-13T17:51:45.292Z","avatar_url":"https://github.com/jmtd.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Opinionated Ikiwiki-in-a-box container\n\nThis is an opinionated, containerized version of\n[IkiWiki](https://ikiwiki.info), the wiki compiler / static site generator.\nBuilds of the container are available at\n\u003chttps://quay.io/repository/jdowland/opinionated-ikiwiki\u003e. They're based on\nthe *slim* variant of the current Debian stable release, and are approximately\n114 MiB (compressed)\n\n * The container runs a web server (lighttpd), with\n   * The wiki content at [/](/);\n   * The CGI end point at [/ikiwiki.cgi](/ikiwiki.cgi);\n   * There are git repositories at\n     * [/git/ikiwiki.git](/git/ikiwiki.git) — the wiki source\n     * [/git/libdir.git](/git/libdir.git) — for custom plugins (default is empty)\n     * [/git/templates.git](/git/templates.git) — for custom templates (default is empty)\n * The c-compiler is `tcc`, rather than `gcc` (saving about 100 MiB)\n * There is no Python in the container\n * the Markdown flavour is [Discount](https://www.pell.portland.or.us/~orc/Code/discount/)\n * The various data/configuration locations are consolidated under `/home/ikiwiki/conf`, containing:\n  * `git`, the above-mentioned git repositories\n  * `htpasswd`, for auth\n  * `setup`, the ikiwiki configuration file\n\nThe following changes are made from a default IkiWiki installation:\n\n * theme plugin enabled and actiontabs theme selected\n * httpauth enabled\n * Python plugins are removed to fix a\n   [bug](https://ikiwiki.info/bugs/inactive_python_plugins_cause_error_output_when_python_interpreter_is_missing/)\n * Comments are enabled and permitted on any non-Discussion page,\n   in Markdown or plain text format. Commenting requires a logged-in user.\n   All comments by non-admins are held for moderation.\n * [Admonitions](https://ikiwiki.info/plugins/contrib/admonition/) are\n   installed and enabled\n * A styled-table CSS class is provided (fullwidth_table)\n * Tables can have separate headers (in the `header` argument)\n * You can defined aliases for PageSpecs in the setup file\n\nThe IkiWiki version used is normally the latest tagged release with some\nextra patches on top. See \u003chttps://github.com/jmtd/ikiwiki/blob/opinionated-doc/README.md\u003e\nfor the details.\n\n## Usage example\n\nFirst create a volume to store the wiki's state, configuration and data:\n\n    podman volume create myIkiWikiData\n\nRun it:\n\n    podman run \\\n        --name my_ikiwiki \\\n        -p 8080:8080 \\\n        --mount type=volume,source=myIkiWikiData,target=/home/ikiwiki/conf \\\n        quay.io/jdowland/opinionated-ikiwiki:latest\n\nThen access your wiki at \u003chttp://localhost:8080\u003e\nor git ull/push to \u003chttp://localhost:8080/git/ikiwiki.git\u003e\n\n### Specifying the admin password\n\nThe default user is `admin` and a random password is generated when the\ncontainer is first started up, and echoed to `stderr`. You can view this\nwith e.g. `podman logs \u003cyour container name or id\u003e`. This is needed for\nediting the wiki via the web interface or pushing/pulling from the git\nrepositories over HTTP.\n\nOn the first container start-up, you can override the random password\ngeneration by supplying one in the `PASSWORD` environment variable. The\nvariable is unset before the HTTPD daemon starts. It is, unfortunately,\npreserved in the container's metadata, and visible via `podman inspect`.\n\nYou could instead alter the admin password by editing the `htpasswd`\nfile after container start-up. See \"Adding users\" below.\n\n### Persistent data\n\nAll the wiki persistent data should be in `/home/ikiwiki/conf` in the\ncontainer and I recommend you mark that as a _volume_, as in the example\ninvocation above, where the volume has been named _myIkiWikiData_, and\nwill persist beyond the lifetime of the running container, and could\nbe mounted in another instance, etc.\n\nNOTE: specifying the volume using the `--mount` syntax (as in the above\nexample) ensures that new volumes are pre-populated with the correct content\nfrom the container. This is important for the container to work! Bind mounts\n(such as created by `-v`) are not supported.\n\n### Adding users\n\nOpinionated IkiWiki relies upon the users and their passwords being\ndefined in `/home/ikiwiki/conf/htpasswd`. To add more users, modify\nthat file using `htpasswd` from the `apache2-utils` Debian package,\ne.g.\n\n    $ VOLPATH=$(podman volume inspect -f '{{ .Mountpoint }}' myIkiWikiData)\n    $ htpasswd ${VOLPATH}/htpasswd newuser\n\nOnce a user exists in the `htpasswd` file, you can grant them admin\nrights on the Wiki via \"Preferences → Setup\", or alternatively edit\n`conf/setup` within the container's data volume by hand (then: rebuild\nthe wiki)\n\n### Rebuilding the wiki\n\nSometimes you might want to trigger a full wiki rebuild, such as after\nhand-editing the `setup` file:\n\n    $ podman exec -ti my_ikiwiki ikiwiki --setup conf/setup --rebuild --wrappers\n\n## TODO\n\nSee [TODO](TODO.md).\n\n## Who / License\n\n[IkiWiki](https://ikiwiki.info) is by [Joey Hess](http://joeyh.name/)\nand many others. *Opinionated IkiWiki* is a Project by\n[Jonathan Dowland](https://jmtd.net). The code bits in this repository\nare © 2024 Jonathan Dowland, and distributed under the terms of the GNU\nPublic License, version 3 (see [COPYING](COPYING)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmtd%2Fopinionated-ikiwiki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmtd%2Fopinionated-ikiwiki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmtd%2Fopinionated-ikiwiki/lists"}