A simple, but not stupid, ipfs uploader for akkoma. Bundled as a module.
Find a file
2022-10-11 17:23:36 +02:00
lib/pleroma align upload.ex to latest commit 2641dcdd15 2022-10-11 17:23:36 +02:00
test/pleroma/uploaders add key to handle IPFS /api/v0/add custom params 2022-09-23 15:32:14 +02:00
.gitignore translated ipfs as module for Akkoma 2022-08-18 17:26:45 +02:00
LICENSE translated ipfs as module for Akkoma 2022-08-18 17:26:45 +02:00
README.md add key to handle IPFS /api/v0/add custom params 2022-09-23 15:32:14 +02:00

Akkoma module for IPFS as uploader

Important, please read

This module replaces the default upload.ex file to implement the IPFS uploader, this because Elixir doesn't implement Monkey Patching and without the modified upload.ex Akkoma won't return the right base url back.

Installation

  • Enter in the module folder of akkoma (defined in the config.exs, by default Akkoma uses this: /var/lib/akkoma/modules)
  • Clone this repo inside (only the .ex files will be loaded by Akkoma)

Cheatsheet

  • post_gateway_url: URL with port of POST Gateway (unauthenticated)
  • get_gateway_url: URL of public GET Gateway
  • api_add_params: List of params compatible with /api/v0/add: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-add, if not provided will be default to ['cid-version': 1]

Example

config.exs

config :pleroma, :modules, runtime_dir: "instance/modules"

config :pleroma, Pleroma.Uploaders.IPFS,
  post_gateway_url: "http://localhost:5001",
  get_gateway_url: "https://{CID}.ipfs.mydomain.com",
  api_add_params: ['cid-version': 1, hash: "blake3"]
  
config :pleroma, Pleroma.Upload,
  uploader: Pleroma.Uploaders.IPFS