Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shinolabs/pinksea
An oekaki BBS board running on top of the AT Protocol.
https://github.com/shinolabs/pinksea
atproto atprotocol bluesky decentralized oekaki
Last synced: 14 days ago
JSON representation
An oekaki BBS board running on top of the AT Protocol.
- Host: GitHub
- URL: https://github.com/shinolabs/pinksea
- Owner: shinolabs
- Created: 2024-10-26T22:44:36.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2024-12-19T07:45:09.000Z (15 days ago)
- Last Synced: 2024-12-19T08:33:51.693Z (15 days ago)
- Topics: atproto, atprotocol, bluesky, decentralized, oekaki
- Language: C#
- Homepage:
- Size: 6.98 MB
- Stars: 45
- Watchers: 1
- Forks: 11
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
PinkSea
poniko's house
![An image of PinkSea's frontend displaying an oekaki post.](Meta/screenshot.png)
An oekaki BBS running as an [AT Protocol AppView](https://atproto.com/guides/glossary#app-view).
# Running
## Backend (AppView)
In order to run the AppView, you need the [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) and the Entity Framework tools package, which you can install through `dotnet tools -g install dotnet-ef`.
### First-time run
1. Run `docker compose up -d` inside of the root folder to start PostgreSQL (if you do not have PostgreSQL installed yet.)
2. Open the `PinkSea` folder
3. Copy the sample `appsettings.example.json` file to `appsettings.json`
1. Modify the `PostgresConfig` to point to your PostgreSQL settings. If you're using the supplied docker compose, you do not need to change this.
2. Point the `AppViewConfig` URL to where your AppView will reside, this is the URL that will be used to identify your PinkSea instance. (As an example, for the official PinkSea instance, it's `https://api.pinksea.art`)
3. (OPTIONAL) Point the `FrontendConfig` to point to where your PinkSea frontend resides. This is used for BlueSky cross-posting with a link. Leaving it blank will disallow cross-posting. (Again, as an example, for the official PinkSea instance it's `https://pinksea.art`)4. Perform `dotnet ef database update` to run the neccessary migrations.
5. Run `dotnet run --configuration Release` to start the PinkSea AppView.That's it! Your server now is connected to the ATmosphere and is ready to start cooperating with other PinkSea AppViews.
### Updating
1. Navigate to the `PinkSea` folder.
2. Run `dotnet ef database update` to run the migrations.
3. Once again, run `dotnet run --configuration Release` to start the server in Release mode.## Frontend (Client app)
In order to run the client app locally, you need a fairly modern [Node.js](https://nodejs.org/en) version. Anything above Node 20 works, but I personally recommend the latest LTS version.
### Configuration
1. Navigate to `PinkSea.Frontend`.
2. Run `npm i` to download the required packages.
3. Navigate to the `src/api/atproto` folder.
3. Point the `serviceEndpoint` value inside of `client.ts` to your AppView instance. (For example, for the official PinkSea instance, the endpoint is `https://api.pinksea.art`)### Running a local server
1. Navigate to `PinkSea.Frontend`
2. Run `npm i` to update the packages.
3. Finally, execute `npm run dev`, to start a local development server with code reloading.### Building
1. Navigate to `PinkSea.Frontend`
2. Run `npm i` to update the packages.
3. Finally, execute `npm run build`, to build and minify the client app.The built app will be inside of the `dist` folder.
# License
The PinkSea code (with the exception of PinkSea.AtProto and PinkSea.AtProto.Server) is licensed under the European Union Public License-1.2. PinkSea.AtProto is released into the public domain as specified by the Unlicense. The appropriate licenses are in each folder's LICENSE files.