{"id":13470588,"url":"https://github.com/davecheney/pub","last_synced_at":"2025-11-07T01:03:52.956Z","repository":{"id":65170026,"uuid":"568643617","full_name":"davecheney/pub","owner":"davecheney","description":"pub, a tiny ActivityPub to Mastodon bridge","archived":false,"fork":false,"pushed_at":"2024-03-31T08:37:16.000Z","size":826,"stargazers_count":238,"open_issues_count":9,"forks_count":14,"subscribers_count":7,"default_branch":"activitypub","last_synced_at":"2025-04-09T20:12:37.081Z","etag":null,"topics":["activitypub","fediverse","mastodon"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davecheney.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2022-11-21T05:05:18.000Z","updated_at":"2025-04-01T09:19:21.000Z","dependencies_parsed_at":"2024-04-02T21:53:29.815Z","dependency_job_id":"e3349ce1-f1e8-4351-80d2-9db4a2756ea3","html_url":"https://github.com/davecheney/pub","commit_stats":{"total_commits":429,"total_committers":2,"mean_commits":214.5,"dds":0.006993006993006978,"last_synced_commit":"3737eaa2786e605f1cde82bb290fb41fd4eb96de"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davecheney%2Fpub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davecheney%2Fpub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davecheney%2Fpub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davecheney%2Fpub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davecheney","download_url":"https://codeload.github.com/davecheney/pub/tar.gz/refs/heads/activitypub","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"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":["activitypub","fediverse","mastodon"],"created_at":"2024-07-31T16:00:32.359Z","updated_at":"2025-11-07T01:03:52.895Z","avatar_url":"https://github.com/davecheney.png","language":"Go","readme":"# pub, a tiny ActivityPub to Mastodon bridge\n    \n[![Go Reference](https://pkg.go.dev/badge/github.com/davecheney/pub.svg)](https://pkg.go.dev/github.com/davecheney/pub) [![Go Report Card](https://goreportcard.com/badge/github.com/davecheney/pub)](https://goreportcard.com/report/github.com/davecheney/pub)\n    \n## What is pub?\n\n`pub` is an ActivityPub host intended for a single actor.\nTo interact with ActivityPub, `pub` implements the Mastodon[^tm] api for use with various apps. \n\n`pub` is not intended to host an ActivityPub community, rather it is aimed at enabling someone who owns their own domain, and thus controls their identity, to participate in the fediverse. \n\n[^tm]: Mastodon is a trademark of [Mastodon gGmbh](https://joinmastodon.org/trademark). `pub` is not affiliated with Mastodon gGmbH. `pub` is not a Mastodon server.\n\n## What _doesn't_ it do?\n\n`pub` doesn't have much of a web interface beyond what ActivityPub requires, you're expected to interact with it via a Mastodon compatible app.\n\n## Getting started\n\n_Warning: `pub` is still in development, if it breaks, you can keep the pieces._\n\n### Pre-requisites\n\n- [Go][go]\n- [MariaDB][mariadb] (if you want to use MariaDB)\n\n### Installation (MySQL/MariaDB)\n\nCreate a database and user for `pub`:\n\n```sql\nCREATE DATABASE pub;\nCREATE USER 'pub'@'localhost' IDENTIFIED BY 'pub';\nGRANT ALL PRIVILEGES ON pub.* TO 'pub'@'localhost';\n```\nInstall `pub`:\n\n#### For Mysql/MariaDB\n\n```bash\ngo install -tags mysql github.com/davecheney/pub@latest\n```\n\n#### For Sqlite\n\n```bash\ngo install -tags sqlite github.com/davecheney/pub@latest\n```\n\nCreate/migrate the database:\n\n```bash\npub --dsn 'pub:pub@/pub' auto-migrate\n```\n\n### Setup\n\nCreate an instance for `pub`:\n\n```bash\npub --dsn 'pub:pub@/pub' create-instance --domain domain.com --title \"Something cool\" --description \"Something witty\" --admin-email admin@domain.com\n```\n\nThis will create an instance, and an admin account for that instance.\n\nCreate your first user\n\n```bash\npub --dsn 'pub:pub@/pub' create-account --email you@domain.com --name you --domain domain.com --password sssh\n```\n\nThis will create an account for you to act as `acct:you@domain.com`\n\n### Running\n\nStart `pub`:\n\n```bash\npub --log-http --dsn 'pub:pub@/pub' serve \n```    \n\n### Getting online\n\n`pub` doesn't have a web interface, so you'll need to use a Mastodon app to interact with it.\nYou'll need to put `pub` behind a reverse proxy, and configure the reverse proxy to forward requests to `pub`.\nTLS is also required, so you'll need to configure TLS for your reverse proxy, probably using [Let's Encrypt](https://letsencrypt.org/).\n\nSee the [examples](examples) directory for sample configurations for [nginx](examples/nginx).\n\n## Acknowledgements \n\n`pub` would not be possible without these amazing projects:\n\n- [Chi][chi]\n- [GORM][gorm]\n- [Kong][kong]\n- [Requests][requests]\n\n\n## Contribution policy\n\n`pub` is currently open to code contributions for bug fixes _only_.\nThis may change in the future, but at the moment please do not send pull requests with new features.\n\nIf you have a feature request, or a bug report, please open an [issue](https://github.com/davecheney/pub/issues/new).\nIf you're _really_ adventurous, you can contact me via [`@dfc@cheney.net`](acct:dfc@cheney.net).\n\nThank you in advance for your understanding.\n\n[chi]: https://github.com/go-chi/chi\n[kong]: https://github.com/alecthomas/kong\n[gorm]: https://gorm.io/\n[requests]: https://github.com/carlmjohnson/requests/\n[go]: https://golang.org/doc/install\n[mariadb]: https://mariadb.org/download/\n","funding_links":[],"categories":["Go","Applications"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavecheney%2Fpub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavecheney%2Fpub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavecheney%2Fpub/lists"}