Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pinnaculum/aether-purrsist
Tool to archive Aether boards to a static website in IPFS
https://github.com/pinnaculum/aether-purrsist
aether archive ipfs mirror
Last synced: 14 days ago
JSON representation
Tool to archive Aether boards to a static website in IPFS
- Host: GitHub
- URL: https://github.com/pinnaculum/aether-purrsist
- Owner: pinnaculum
- Created: 2023-04-06T20:27:39.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-16T14:38:09.000Z (about 1 year ago)
- Last Synced: 2024-10-23T03:11:17.632Z (22 days ago)
- Topics: aether, archive, ipfs, mirror
- Language: Python
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
aether-purrsist
===============This is a Python tool designed to archive the content of *Aether*
communities (boards) in [IPFS](https://ipfs.tech).
[Aether](https://getaether.net/) is a peer-to-peer forums application.
The content in *Aether* is ephemeral (6 months by default).It does not connect to the *Aether* network, but rather uses the
*Aether* SQLite database.
It produces a website that can be pinned to a remote IPFS pinning service,
as well as an Atom feed of all the Aether threads.See [a demo here](https://bafybeidhabl7v6d2a7tzifjq47euvmysbtoetvoos4xjcdsarlnfiaxxcm.ipfs.dweb.link) ([Atom feed](https://bafybeidhabl7v6d2a7tzifjq47euvmysbtoetvoos4xjcdsarlnfiaxxcm.ipfs.dweb.link/atom.xml)) (sync date: *2023-09-16*).
# Installation
```sh
pip install .
```# Usage
Copy the *config.yaml* file from the *examples* directory and
edit it if necessary. Then run it with the config path (otherwise
it will use the file named *config.yaml* in the current directory):```sh
aether-purrsist -c config.yaml
```Use *-v* to increase verbosity:
```sh
aether-purrsist -vv
```The website's CID will be echoed after it's finished.
# Configuration
The **ipfs.maddr** setting should be the multiaddr of your kubo's node
API endpoint.The **ipfs.ipns_key** setting controls the name of the IPNS key
to which the website will be published. If you change the IPNS key name,
you will **lose** any *Aether* threads that had already been previously
archived by *aether-purrsist*, therefore don't edit this setting unless
it's the first time you run it.To enable remote pinning, set *enabled* to *True* in the **ipfs.pinremote**
section of the YAML config file. The *service* setting should match the name
of the remote service as it's configured on your IPFS node. The *pin_name*
setting is passed to the remote pinning service as the IPFS pin name for the
archive. Before pinning to the remote service, any previous archive with
this *pin_name* will be deleted (unpinned).## Boards sync config
Each *Aether* board that you want to archive should be listed in the
*boards* section.```yaml
boards:
AskAether:
threads_ignore_byname:
- 'dead'
music:
fingerprint: 6b38e6d4ccd61cc8cbdb11465e9d45abf0db4cd502b7b1b987fe7d1e624772f9
```Sync options:
- *max_threads*: Maximum number of threads to archive (integer, default is 0,
unlimited)
- *threads_ignore_byname*: a list of regular expressions that will be matched
against the *Name* of each thread of this sub. If one of the regexps
matches, this thread won't be archived
- *fingerprint*: Specify the exact fingerprint of the sub. The reason for this
option is that board names in *Aether* are not unique (only fingerprints
are). If you know the board's fingerprint (can be found in the sub's *Info*
in the UI), you can set it here.