mirror your GitHub repos to tangled.org automatically
1# synchub.to
2
3> mirror your GitHub repos to [tangled.org](https://tangled.org), automatically.
4
5- [👉 Check it out](https://synchub.to/)
6
7## Features
8
9- a GitHub App
10- OAuth connection to tangled
11- per-push sync of branches and tags
12
13> [!IMPORTANT]
14> Only public repositories are synced (tangled does not yet support private repositories).
15
16## Try it out locally
17
18You will need:
19
201. A GitHub App with a webhook pointed at your local tunnel and `contents:read`, `metadata:read` permissions plus the `push`, `create`, `delete`, `repository` events.
212. A [Neon](https://neon.tech) Postgres database.
223. An AT Protocol confidential OAuth client (see `.well-known/atproto-client-metadata.json`).
23
24Set your environment variables in a `.env` file:
25
26```env
27NUXT_GITHUB_APP_ID=<github app id>
28NUXT_GITHUB_APP_PRIVATE_KEY=<github app private key, pem>
29NUXT_GITHUB_WEBHOOK_SECRET=<github app webhook secret>
30NUXT_DATABASE_URL=<neon postgres connection string>
31NUXT_ENCRYPTION_KEY=<32-byte base64 key for sealing ssh private keys>
32NUXT_CRON_SECRET=<shared secret for the worker cron route>
33```
34
35### Setup
36
37```bash
38# install dependencies
39corepack enable
40pnpm install
41
42# serve in dev mode, with hot reload at localhost:3000
43pnpm dev
44
45# build for production
46pnpm build
47
48# preview in production mode
49pnpm preview
50```
51
52## License
53
54Made with ❤️
55
56Published under [MIT License](./LICENCE).