A simple, but not stupid, ipfs uploader for akkoma. Bundled as a module.
Go to file
Claudio Maradonna 70ad169511
update README for akkoma commit alignment
2023-03-18 10:19:43 +01: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 update README for akkoma commit alignment 2023-03-18 10:19:43 +01:00

README.md

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

Akkoma commit alignment group by branch

  • master: fef4bae0067fcd6e102e3d625390e8ae909c6bb8
  • develop: fef4bae0067fcd6e102e3d625390e8ae909c6bb8