{"id":13835711,"url":"https://github.com/bakape/shamichan","last_synced_at":"2025-12-15T10:24:32.889Z","repository":{"id":17991076,"uuid":"20999728","full_name":"bakape/shamichan","owner":"bakape","description":"anonymous realtime imageboard focused on high performance and transparent moderation","archived":true,"fork":false,"pushed_at":"2023-03-27T23:24:55.000Z","size":241302,"stargazers_count":447,"open_issues_count":101,"forks_count":74,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-06-28T11:02:55.615Z","etag":null,"topics":["go","imageboard","live","realtime","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bakape.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":"2014-06-19T12:38:04.000Z","updated_at":"2025-04-22T10:13:21.000Z","dependencies_parsed_at":"2024-06-18T20:05:23.626Z","dependency_job_id":"51072fff-1451-4b36-a500-c75f267e2451","html_url":"https://github.com/bakape/shamichan","commit_stats":null,"previous_names":["bakape/meguca"],"tags_count":142,"template":false,"template_full_name":null,"purl":"pkg:github/bakape/shamichan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakape%2Fshamichan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakape%2Fshamichan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakape%2Fshamichan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakape%2Fshamichan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bakape","download_url":"https://codeload.github.com/bakape/shamichan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakape%2Fshamichan/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264565786,"owners_count":23629039,"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":["go","imageboard","live","realtime","rust"],"created_at":"2024-08-04T14:01:10.385Z","updated_at":"2025-12-15T10:24:32.830Z","avatar_url":"https://github.com/bakape.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"[![Build](https://github.com/bakape/shamichan/workflows/Build/badge.svg?branch=master)](https://github.com/bakape/shamichan/actions?query=workflow%3ABuild+branch%3Amaster)\n\n# shamichan\nanonymous realtime imageboard focused on high performance, free speech and transparent moderation\n\nPlatforms: Linux, Docker\n\nLicense: GNU GPLv3\n\n\n__The master branch is currently undergoing active breaking changes towards shamichan v7. If you intend to deploy shamichan, please use the v6 branch.__\n\n## Runtime dependencies\n\n* [PostgresSQL](https://www.postgresql.org/download/) \u003e= 10.0\n\n## Docker\n\nShamichan can be deployed in a self-contained [Docker](https://www.docker.com/)\ncontainer.\n\nSimply run\n\n```\ndocker run --restart unless-stopped -d --network host --mount type=bind,source=$image_dir,destination=/shamichan/images ghcr.io/bakape/shamichan -d $DB\n```\n\nwhere:\n- $image_dir is the directory to store uploaded images\n- $DB is the URL to a PostgreSQL database to use for data storage\n\n## Building from source\n\n### Native installation.\n\nFor installing shamichan directly onto a server follow the steps bellow.\nA reference list of commands can be found in `./docs/installation.md`\n\n#### Build dependencies\n\n* [Go](https://golang.org/doc/install) \u003e=1.13 (for building server)\n* [Node.js](https://nodejs.org) \u003e=12.0 (for building client)\n* [Rust](https://www.rust-lang.org/) \u003e= 1.41\n* C11 compiler\n* make\n* pkg-config\n* pthread\n* ffmpeg \u003e= 4.1 libraries (libavcodec, libavutil, libavformat, libswscale)\ncompiled with:\n    * libvpx\n    * libvorbis\n    * libopus\n    * libtheora\n    * libx264\n    * libmp3lame\n* OpenCV 2-3\n* libgeoip\n* OpenSSL\n* git\n\nNB: Ubuntu patches to ffmpeg on some Ubuntu versions \u003c19.10 break image\nprocessing. In that case please compile from unmodified ffmpeg sources using:\n\n```\nsudo apt build-dep ffmpeg\ngit clone https://git.ffmpeg.org/ffmpeg.git ffmpeg\ncd ffmpeg\ngit checkout n4.1\n./configure\nmake -j`nproc`\nsudo make install\n```\n\n#### Compilation\n\nRun `make`\n\n## Setup\n\n### Deployment\n\n\u003c!-- TODO: update --\u003e\n\nshamichan can be started in debug mode simply with `./shamichan`.\nConfigurations are split between shamichan instance configurations\nand server instance configurations, which are required to start\nthe server and connect to the database.\nThe shamichan instance configurations are stored in the database, but\nserver instance configurations are optionally loaded from a `config.json`\nfile on server start.\nA sample configuration file can be found under `docs/config.json`.\nDocumentation for this file is available under `docs/config.jsonc`.\n\nIt is recommended to serve shamichan behind a reverse proxy like NGINX or Apache\nwith properly configured TLS settings. A sample NGINX configuration file can be\nfound in `docs/`.\n\n### Initial instance configuration\n\n* TODO: grant first user to go to a URL admin rights\n\n## Development\n\nTODO: note about compile-time query checking and how to support it\n\n* See `./docs` for more documentation\n* `make install_tools` to install required build tools\n* `make server` and `make client` build the server and client separately\n* Pass `DEBUG=1` before make command to build in debug mode\n* Pass `NO_DEPS=1` before make command to not install dependencies with npm on\neach build\n* `make clean` removes files from the previous compilation\n* `make {test,test_no_race}` run regular test and tests without data race\ndetection, respectively\n* To run server unit tests add database creation rights to your PostgreSQL role\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakape%2Fshamichan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbakape%2Fshamichan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakape%2Fshamichan/lists"}