- Rust 78.7%
- HTML 12.9%
- CSS 6.8%
- JavaScript 1.1%
- Makefile 0.5%
| doc | screenshots | |
| src | Move delete to a post action too | |
| static | Move delete to a post action too | |
| templates | Move delete to a post action too | |
| .gitignore | ||
| bacon.toml | ||
| Cargo.lock | release 0.2 | |
| Cargo.toml | release 0.2 | |
| config.ini.example | session storage and cleanup | |
| LICENSE | ||
| Makefile | handle homepage with no link | |
| README.md | fixup readme | |
| ROADMAP.md | tweaks | |
| rustfmt.toml | ||
CoinCoin (\kwɛ̃kwɛ̃) is a static link sharing website. You found something interresting on the web? Share it with a comment.
In French, "coin" means corner/nook (as an invitation to make it your personnal small place on the internet) but is also the kwak of a duck (ducks are cool).
This was strongly inspired by Shaarli but with the goal of having all the public facing pages in static files. We live in times where the internet is being constantly vandalised by AI bots, having many personnals and lightweight spaces is an act of resistance.
Run
Download the latest release
$ tar xzvf coincoin.tar.gz
$ cp config.ini.example config.ini
$ vim config.ini
$ ./coincoin
See the content of config.ini to set your information.
Deployment
To publish the shared links, you only need to share the generated static files
$ ./coincoin rebuild
$ rsync -rv --delete out/ example.com:/srv/web/coincoin
and serve it using a web server such as NGINX
map $arg_page $page {
default "index.html";
"~^[0-9]+$" "page-$arg_page.html";
}
server {
server_name coin.example.com;
root /srv/web/coincoin/;
error_page 404 /404.html;
location = / {
try_files /$page =404;
}
location / {
try_files $uri $uri.html =404;
}
}
If you wish to deploy the CoinCoin binary instead (be able to add links), you must change the username/password first in config.ini (note that CoinCoin is not finished yet, do at your own risks).
$ read -s password; echo $password | argon2 "super salt value here" -e
server {
# https is required
server_name coin.example.com
listen 80;
location / {
return 301 https://$host$request_uri;
}
}
server {
server_name coin.example.com;
listen 443 ssl http2;
# TODO
}
State of project
This is project is still very early and not production ready. See ROADMAP.md for what is planned.