An imageboard, but images are stored in a peer-to-peer network

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

Build

  • git clone repo
  • run make

Install

  • copy (or symlink) static/ and templates/ 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
Similar Resources

Pure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman:

Pure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman:

peerdiscovery Pure-go library for cross-platform thread-safe local peer discovery using UDP multicast. I needed to use peer discovery for croc and eve

Jan 8, 2023

Package socket provides a low-level network connection type which integrates with Go's runtime network poller to provide asynchronous I/O and deadline support. MIT Licensed.

socket Package socket provides a low-level network connection type which integrates with Go's runtime network poller to provide asynchronous I/O and d

Dec 14, 2022

Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core network solution.

Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core network solution.

Connecting the Next Billion People Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core

Dec 31, 2022

Optimize Windows's network/NIC driver settings for NewTek's NDI(Network-Device-Interface).

windows-ndi-optimizer[WIP] Optimize Windows's network/NIC driver settings for NewTek's NDI(Network-Device-Interface). How it works This is batchfile d

Apr 15, 2022

A simple network analyzer that capture http network traffic

A simple network analyzer that capture http network traffic

httpcap A simple network analyzer that captures http network traffic. support Windows/MacOS/Linux/OpenWrt(x64) https only capture clienthello colorful

Oct 25, 2022

llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.

llb What the f--k it is? It's a very simple but quick backend for proxy servers. You can setup redirect to your main domain or just show HTTP/1.1 404

Sep 27, 2022

A suite of gRPC debugging tools. Like Fiddler/Charles but for gRPC.

grpc-tools A suite of tools for gRPC debugging and development. Like Fiddler/Charles but for gRPC! The main tool is grpc-dump which transparently inte

Dec 22, 2022

Yet another TCP Port Scanner, but lightning faster.

Fast TCP Port Scanner A highly concurrent TCP port scanner. Run Tests with Code Coverage (Linux) go test -cover Compile (Linux) go build -v -o fglps R

Jul 23, 2022
Comments
  • Dockerize ?

    Dockerize ?

    Hi,

    This is really good idea and a step to roll out decentralized systems to mainstream. I appreciate it.

    Is it possible that we might use containers to spin this off on our machines?

    Cheers,

DeepValueNetwork is a peer-to-peer database network managed and hosted by its community.

DeepValueNetwork To understand what DeepValueNetwork will be, I suggest you read this document. In progress This software is currently being developed

Dec 10, 2022
Steve - A peer-to-peer (p2p) decentralized network

Steve Steve is a peer-to-peer (p2p) decentralized network that enables people to

Feb 5, 2022
Activitypub-server - PubChannel - a libre, self-hostable, federated, imageboard platform that utilizes ActivityPub

About PubChannel is a libre, self-hostable, federated, imageboard platform that

Jan 11, 2022
📦 Command line peer-to-peer data transfer tool based on libp2p.

pcp - Peer Copy Command line peer-to-peer data transfer tool based on libp2p. Table of Contents Motivation Project Status How does it work? Usage Inst

Jan 5, 2023
Group peer to peer video calls for everyone written in Go and TypeScript

Peer Calls v4 WebRTC peer to peer calls for everyone. See it live in action at peercalls.com. The server has been completely rewriten in Go and all th

Dec 30, 2022
gopunch is a go implementation of a peer-to-peer chat service built using UDP hole punching.

Gopunch gopunch is a go implementation of a peer-to-peer chat service built using UDP hole punching. This is a toy implementation that I put together

May 24, 2022
Peer-to-peer hypermedia protocol
Peer-to-peer hypermedia protocol

IPFS powers the Distributed Web A peer-to-peer hypermedia protocol to make the web faster, safer, and more open. TL;DR Get help and talk about ideas i

Jan 5, 2023
Go-ipfs-pinner - The pinner system is responsible for keeping track of which objects a user wants to keep stored locally

go-ipfs-pinner Background The pinner system is responsible for keeping track of

Jan 18, 2022
Snugger is a light weight but fast network recon scanner that is written from pure golang
Snugger is a light weight but fast network recon scanner that is written from pure golang

Snugger is a light weight but fast network recon scanner that is written from pure golang. with this scann you can ARP your network, port scan hosts and host lists, as well as scan for BSSId

May 19, 2022
Share plain text, images and files in Local area network.

LAN-Share Share plain text, images and files in Local area network. Usage $ lan-share -h Usage of lan-share: -addr string Listen on address

Jan 25, 2022