{"id":17594889,"url":"https://github.com/pinnaculum/aether-purrsist","last_synced_at":"2025-08-18T22:31:33.472Z","repository":{"id":178117648,"uuid":"624594638","full_name":"pinnaculum/aether-purrsist","owner":"pinnaculum","description":"Tool to archive Aether boards to a static website in IPFS","archived":false,"fork":false,"pushed_at":"2023-09-16T14:38:09.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-31T00:09:44.999Z","etag":null,"topics":["aether","archive","ipfs","mirror"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pinnaculum.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"galacteek","liberapay":"galacteek"}},"created_at":"2023-04-06T20:27:39.000Z","updated_at":"2023-06-25T20:59:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"291b3553-77b7-4bac-bfee-5f9b452d2a9a","html_url":"https://github.com/pinnaculum/aether-purrsist","commit_stats":null,"previous_names":["pinnaculum/aether-purrsist"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Faether-purrsist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Faether-purrsist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Faether-purrsist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Faether-purrsist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pinnaculum","download_url":"https://codeload.github.com/pinnaculum/aether-purrsist/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230284070,"owners_count":18202330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aether","archive","ipfs","mirror"],"created_at":"2024-10-22T07:12:16.049Z","updated_at":"2024-12-18T14:17:16.828Z","avatar_url":"https://github.com/pinnaculum.png","language":"Python","funding_links":["https://ko-fi.com/galacteek","https://liberapay.com/galacteek"],"categories":[],"sub_categories":[],"readme":"aether-purrsist\n===============\n\nThis is a Python tool designed to archive the content of *Aether*\ncommunities (boards) in [IPFS](https://ipfs.tech).\n[Aether](https://getaether.net/) is a peer-to-peer forums application.\nThe content in *Aether* is ephemeral (6 months by default).\n\nIt does not connect to the *Aether* network, but rather uses the\n*Aether* SQLite database.\nIt produces a website that can be pinned to a remote IPFS pinning service,\nas well as an Atom feed of all the Aether threads.\n\nSee [a demo here](https://bafybeidhabl7v6d2a7tzifjq47euvmysbtoetvoos4xjcdsarlnfiaxxcm.ipfs.dweb.link) ([Atom feed](https://bafybeidhabl7v6d2a7tzifjq47euvmysbtoetvoos4xjcdsarlnfiaxxcm.ipfs.dweb.link/atom.xml)) (sync date: *2023-09-16*).\n\n# Installation\n\n```sh\npip install .\n```\n\n# Usage\n\nCopy the *config.yaml* file from the *examples* directory and\nedit it if necessary. Then run it with the config path (otherwise\nit will use the file named *config.yaml* in the current directory):\n\n```sh\naether-purrsist -c config.yaml\n```\n\nUse *-v* to increase verbosity:\n\n```sh\naether-purrsist -vv\n```\n\nThe website's CID will be echoed after it's finished.\n\n# Configuration\n\nThe **ipfs.maddr** setting should be the multiaddr of your kubo's node\nAPI endpoint.\n\nThe **ipfs.ipns_key** setting controls the name of the IPNS key\nto which the website will be published. If you change the IPNS key name,\nyou will **lose** any *Aether* threads that had already been previously\narchived by *aether-purrsist*, therefore don't edit this setting unless\nit's the first time you run it.\n\nTo enable remote pinning, set *enabled* to *True* in the **ipfs.pinremote**\nsection of the YAML config file. The *service* setting should match the name\nof the remote service as it's configured on your IPFS node. The *pin_name*\nsetting is passed to the remote pinning service as the IPFS pin name for the\narchive. Before pinning to the remote service, any previous archive with\nthis *pin_name* will be deleted (unpinned).\n\n## Boards sync config\n\nEach *Aether* board that you want to archive should be listed in the\n*boards* section.\n\n```yaml\nboards:\n  AskAether:\n    threads_ignore_byname:\n      - 'dead'\n  music:\n    fingerprint: 6b38e6d4ccd61cc8cbdb11465e9d45abf0db4cd502b7b1b987fe7d1e624772f9\n```\n\nSync options:\n\n- *max_threads*: Maximum number of threads to archive (integer, default is 0,\n    unlimited)\n- *threads_ignore_byname*: a list of regular expressions that will be matched\n    against the *Name* of each thread of this sub. If one of the regexps\n    matches, this thread won't be archived\n- *fingerprint*: Specify the exact fingerprint of the sub. The reason for this\n    option is that board names in *Aether* are not unique (only fingerprints\n    are). If you know the board's fingerprint (can be found in the sub's *Info*\n    in the UI), you can set it here.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinnaculum%2Faether-purrsist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinnaculum%2Faether-purrsist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinnaculum%2Faether-purrsist/lists"}