its like if harper wrote a fediverse software. oh wait.
Go to file
2024-05-19 16:30:44 -04:00
config change default logging type 2024-05-11 18:00:50 -04:00
packages style this stupid button 2024-05-19 16:30:44 -04:00
.editorconfig add editor config 2024-04-27 14:12:20 -04:00
.gitignore waiter, more half cooked and unformatted ui please! 2024-05-14 03:49:41 -04:00
.npmrc add TDM-Reservation header and remove queue stuff so i can redo it later and add robots.txt to the right place 2024-05-18 11:33:12 -04:00
.prettierignore cat ears and other profile enhancements 2024-05-14 01:24:22 -04:00
.prettierrc cat ears and other profile enhancements 2024-05-14 01:24:22 -04:00
clean.sh add clean scripts and work on login 2024-05-18 13:36:45 -04:00
cleanall.sh add clean scripts and work on login 2024-05-18 13:36:45 -04:00
eslint.config.mjs Yup! 2024-05-09 16:34:48 -04:00
package.json add clean scripts and work on login 2024-05-18 13:36:45 -04:00
pnpm-lock.yaml fix lockfile 2024-05-17 16:28:07 -04:00
pnpm-workspace.yaml formatting!!!!!!!11 2024-04-27 14:07:06 -04:00
README.md add TDM-Reservation header and remove queue stuff so i can redo it later and add robots.txt to the right place 2024-05-18 11:33:12 -04:00

aster

Please don't upload to GitHub

working on some kind of fedi software. this should never be used seriously! i'm just being silly and having fun over here.

frontend written in svelte and styling in sass. backend is in typescript.

static files can be placed in packages/frontend/static

originally, i was going to make it conform to the mastodon api. i think i will add a compatability thing later, but for now im just going to create my own similar but better (at least to me) api.

you do need to build the backend to run migrations. i know that sounds silly but everything here is silly.

shout out wafrn. i used it as a reference for a lot of stuff, its neat https://github.com/gabboman/wafrn

project status

activitypub

  • fetchable users
  • fetchable notes
  • accept activities (inboxes)
  • announce activities

backend

  • fetchable users
  • fetchable notes
  • fetchable instance info
  • fetchable remote instance info
  • register users
  • create notes

frontend

for development only purposes you can set an api url to use that isnt default by setting PUBLIC_APIURL in the .env of packages/frontend.

todo:

  • background, avatar, and banner alt text after added to backend

misc

  • prettier logs
  • split it up into workers so the entire thing doesnt crumble on error

security

if you find a vulnerability in my software please contact me privately. see https://blueb.me/

configuration

find it in config/example.yml. use that template and create a production.yml in that same directory.

planned supported extensions

activitystreams

  • [-] as:manuallyApprovesFollowers
  • [-] as:sensitive
  • as:Hashtag
  • [-] as:quoteUrl

mastodon

  • toot:Emoji
  • toot:discoverable

fedibird

  • [-] fedibird:quoteUri

schema

  • schema:PropertyValue
  • schema:value

misskey

  • [-] misskey:_misskey_content
  • [-] misskey:_misskey_quote
  • misskey:_misskey_vote (i do not know what this is used for, but i will probably support it)
  • misskey:_misskey_reaction
  • [-] misskey:_misskey_summary
  • [-] misskey:isCat

firefish

  • [-] firefish:speakAsCat

sharkey

  • [-] sharkey:backgroundUrl

mia's iceshrimp patches

  • mia:bite (i think this is the extension?)

example followreq activity

for my reference

{
	"@context": [
		"https://www.w3.org/ns/activitystreams",
		"https://w3id.org/security/v1",
		{
			"Key": "sec:Key",
			"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
			"sensitive": "as:sensitive",
			"Hashtag": "as:Hashtag",
			"quoteUrl": "as:quoteUrl",
			"fedibird": "http://fedibird.com/ns#",
			"quoteUri": "fedibird:quoteUri",
			"toot": "http://joinmastodon.org/ns#",
			"Emoji": "toot:Emoji",
			"featured": "toot:featured",
			"discoverable": "toot:discoverable",
			"schema": "http://schema.org#",
			"PropertyValue": "schema:PropertyValue",
			"value": "schema:value",
			"misskey": "https://misskey-hub.net/ns#",
			"_misskey_content": "misskey:_misskey_content",
			"_misskey_quote": "misskey:_misskey_quote",
			"_misskey_reaction": "misskey:_misskey_reaction",
			"_misskey_votes": "misskey:_misskey_votes",
			"_misskey_summary": "misskey:_misskey_summary",
			"isCat": "misskey:isCat",
			"firefish": "https://joinfirefish.org/ns#",
			"speakAsCat": "firefish:speakAsCat",
			"sharkey": "https://joinsharkey.org/ns#",
			"backgroundUrl": "sharkey:backgroundUrl",
			"listenbrainz": "sharkey:listenbrainz",
			"vcard": "http://www.w3.org/2006/vcard/ns#"
		}
	],
	"id": "https://eepy.zone/follows/9spb5qhlz5jp0032",
	"type": "Follow",
	"actor": "https://eepy.zone/users/9kfweg7wmdw7fnnt",
	"object": "https://as1.blueb.me/users/1"
}

example note

{
	"@context": [
		"https://www.w3.org/ns/activitystreams",
		"https://w3id.org/security/v1",
		{
			"Key": "sec:Key",
			"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
			"sensitive": "as:sensitive",
			"Hashtag": "as:Hashtag",
			"quoteUrl": "as:quoteUrl",
			"fedibird": "http://fedibird.com/ns#",
			"quoteUri": "fedibird:quoteUri",
			"toot": "http://joinmastodon.org/ns#",
			"Emoji": "toot:Emoji",
			"featured": "toot:featured",
			"discoverable": "toot:discoverable",
			"schema": "http://schema.org#",
			"PropertyValue": "schema:PropertyValue",
			"value": "schema:value",
			"misskey": "https://misskey-hub.net/ns#",
			"_misskey_content": "misskey:_misskey_content",
			"_misskey_quote": "misskey:_misskey_quote",
			"_misskey_reaction": "misskey:_misskey_reaction",
			"_misskey_votes": "misskey:_misskey_votes",
			"_misskey_summary": "misskey:_misskey_summary",
			"isCat": "misskey:isCat",
			"firefish": "https://joinfirefish.org/ns#",
			"speakAsCat": "firefish:speakAsCat",
			"sharkey": "https://joinsharkey.org/ns#",
			"backgroundUrl": "sharkey:backgroundUrl",
			"listenbrainz": "sharkey:listenbrainz",
			"vcard": "http://www.w3.org/2006/vcard/ns#"
		}
	],
	"id": "https://eepy.zone/notes/9sv3rkmjjvdr000z",
	"type": "Note",
	"attributedTo": "https://eepy.zone/users/9kfweg7wmdw7fnnt",
	"content": "<p>my silly ass made an ap request to my instance about a remote post</p>",
	"published": "2024-05-04T03:22:39.019Z",
	"to": ["https://www.w3.org/ns/activitystreams#Public"],
	"cc": ["https://eepy.zone/users/9kfweg7wmdw7fnnt/followers"],
	"inReplyTo": null,
	"attachment": [],
	"sensitive": false,
	"tag": []
}

rsa keygen commands

openssl genrsa -out private.pem 2048 openssl rsa -in private.pem -outform PEM -pubout -out public.pem