{"id":22480113,"url":"https://github.com/anoncheg1/diboard","last_synced_at":"2025-10-24T09:38:55.462Z","repository":{"id":147815725,"uuid":"82850294","full_name":"Anoncheg1/diboard","owner":"Anoncheg1","description":"Decentralized ImageBoard","archived":false,"fork":false,"pushed_at":"2017-05-19T19:25:23.000Z","size":23263,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-10-20T17:18:30.134Z","etag":null,"topics":["decentralized","forum","imageboard","nntp"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/Anoncheg1.png","metadata":{"files":{"readme":"README.md","changelog":"changelog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security policy","support":null,"governance":null}},"created_at":"2017-02-22T20:39:49.000Z","updated_at":"2023-10-20T17:18:30.679Z","dependencies_parsed_at":"2023-05-27T14:45:07.518Z","dependency_job_id":null,"html_url":"https://github.com/Anoncheg1/diboard","commit_stats":null,"previous_names":[],"tags_count":3,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anoncheg1%2Fdiboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anoncheg1%2Fdiboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anoncheg1%2Fdiboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anoncheg1%2Fdiboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anoncheg1","download_url":"https://codeload.github.com/Anoncheg1/diboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228483526,"owners_count":17927363,"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":["decentralized","forum","imageboard","nntp"],"created_at":"2024-12-06T15:19:41.298Z","updated_at":"2025-10-24T09:38:50.414Z","avatar_url":"https://github.com/Anoncheg1.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/Anoncheg1/diboard.svg?branch=master)](https://travis-ci.org/Anoncheg1/diboard)\n\nUse: ```$ git clone --recursive --depth=1 https://github.com/Anoncheg1/diboard.git```\n\ndiboard v1.0.8 Decentralized ImageBoard just like [nntpchan](https://github.com/majestrate/nntpchan) with following differences:\n-----\n- scientific research on this topic\n- main goal of project is a quality of code\n- the least possible amount of third-party libraries\n- more accurate with rfc\n- philosophy: closed groups of trusted servers to protect against flood and user fingerprint leaks.\n![peering philosophy](https://github.com/Anoncheg1/diboard/blob/master/peering%20philosophy.png \"peering philosophy\")\n\nStructure:\n--------\n\n1. Import Existing Maven project diboard\n2. Import Existing Maven project dibd - Main core NNTP module that can work independently.\n3. Import Existing Maven project webspringboot - Web-frontend. Spring boot with embedded Tomcat.\n\nSystem Requirements\n-----\n\n- Min RAM for everything 600MB free.\n- Java 8 JDK.\n- ImageMagic. (used for thumbnails)\n- PostgreSQL or MySQL.\n\nInstallation\n-----\n\n1. Install RDBMS: postgresql (or mysql)\n2. Create database\n```\n$ su\n# su postgres\n$ psql\npostgres=# CREATE ROLE dibd WITH LOGIN PASSWORD 'mysecret';\npostgres=# CREATE DATABASE dibd WITH OWNER dibd ENCODING 'UTF8';\npostgres=# \\q\n$ psql dibd\ndibd=# \\i /home/user/diboard/dibd.SQL\n```\n3. configure webspringboot/dibd.conf\n4. install ImageMagic (read https://www.imagemagick.org/script/security-policy.php)\n5. Compile\n```\n$ cd diboard\n$ mvn clean compile package\n```\n6. Run\n```\n$ cd webspringboot\n$ java -jar target/diboard.jar -p 9119\n```\nTo run as a daemon on port 119 see dibd/util\n\nPort 119 may be accessed local for debug:\n```\niptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 119 -j REDIRECT --to-port 9119\n```\n\nFeatures:\n----------\n- No JavaScript.\n- Short links works globally\n- No message loss even with too large attachment.\n- Fully compatible with nntpchan network (except tripcodes, AUTH command, decentralized moderation, DKIM).\n- Only images supported for now. One attachment per post.\n- SOCKS proxy connection for Tor OR i2p working.\n- Flexible control of used disk space and used resources.\n- Abstract API for implementing any JVM supported web-frontend (with thread pool or with dynamically spawn threads).\n\nKnews issues:\n----------\n- Impossible to chage HTML templates without recompilation.\n- HTTP proxy not supported.\n\nTODO:\n----------\n1. create another web-frontend with external templates and more minimalistic.\n2. replace XOVER with new commands.\n\nFor nntpchan:\n----------\n- Fix XOVER and block empty articles.\n\njar verification:\n----------\n```\n$ gpg2 --import pubkey.asc\n$ cd webspringboot/target/\n$ gpg --verify diboard.jar.sig diboard.jar\nfingerprint 24B8 DB4A 109A 254C 1CD8  1629 BBC5 0968 5FC9 36DB\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanoncheg1%2Fdiboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanoncheg1%2Fdiboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanoncheg1%2Fdiboard/lists"}