Interplanetary File Dumpster
An imageboard, but images are stored in a peer-to-peer network
Features:
- Easy file sharing without registration and SMS. Supports images, video and audio files.
- Files are not stored on the disk, but are uploaded to the peer-to-peer IPFS network instead.
- IPFS gateway is configurable. Use your own or any other public gateway to host uploaded files.
- RSS feeds.
- Comments and up/down votes.
- Premoderation mode toggle.
Requirements
- PostgreSQL database
- IPFS node
- Go 1.15.2 (only for building)
- A web server is recommended, i.e. nginx
Run with docker
git clone https://github.com/zhoreeq/ipfd.git && cd ipfd
docker build -t ipfd .
docker-compose up -d
The app listens at http://localhost:8000
Build
- git clone repo
- run
make
Install
- copy (or symlink)
static/
andtemplates/
directories to your location, i.e./etc/ipfd
- copy
config.example
to your location, i.e./etc/ipfd/config
- edit the config file
- install database schema from
migrations/xxx_init.up.sql
file - optionally, configure nginx as a reverse proxy
Look inside contrib/
directory for systemd and nginx config files.
Run
./ipfd -config /etc/ipfd/config
Config options
- SITE_URL, website url, i.e. https://example.org
- SITE_NAME, website title
- BIND_ADDRESS, bind ipfd web server to this address
- DATABASE_URL, postgresql connection string
- TEMPLATES_PATH, path to templates, i.e.
/etc/ipfd/templates
- STATIC_URL, URL to static files
- STATIC_PATH, path to static files, i.e.
/etc/ipfd/static
- SERVE_STATIC, if you want to serve static with nginx, set this to false
- IPFS_API, IPFS node settings, by default it should be /ip4/127.0.0.1/tcp/5001
- IPFS_GATEWAY, URL of IPFS gateway
- IPFS_PIN, files are not pinned in the IPFS repository if set to false
- MAX_FILESIZE, maximum uploaded file size in bytes
- ALLOWED_CONTENT_TYPES, which MIME file types are allowed
- PREMODERATION, if true, posts are not displayed until admin approves them manually