redirecter for ao3 that adds opengraph metadata
1# fixAO3 ✍️
2
3Provides OpenGraph tags and redirection for items on AO3.org. Should be pretty
4easy to hack for non-AO3 sites; just change the references to
5https://archiveofourown.org and you should be good to go.
6
7If you'd like to support further work, you can tip me on
8[ko-fi](https://ko-fi.com/veryroundbird)! Also props to Fujocoded's
9[AO3.js](https://github.com/fujocoded/ao3.js) for making this possible.
10
11## self-hosting
12
13you too can self-host if you want to change the visuals or just have a different redirection url or something. the main things you need installed are:
14
15- Bun
16- Probably some process manager like PM2 (you will also need Node.js for PM2)
17- A web server that allows reverse proxying (I use Caddy)
18
19How to run:
20
21- copy .env.example to .env, and update the variables in there to be whatever you want them to be. the lists of existing themes and fonts can be found in the src/lib folder, for setting defaults
22- `bun --bun next start` will run the application. if you're running it through pm2, do `pm2 start --name=fixao3 bun -- --bun next start`
23- set up a reverse proxy on your domain or subdomain to localhost:3000
24- it should, theoretically work (installing imagemagick from source is the hard part. wheeze)
25
26How to customize:
27
28- stuff like site name, meta description, etc. are set in site variables. right now the ARCHIVE var is only used for what to display on the bottom of cards because I'm not sure how AO3.js supports other archives apart from that it does.
29- basically all the styles are in src/app/globals.css
30- add fonts to src/lib/baseFonts.js and src/lib/titleFonts.js, and themes to src/lib/themes.js (titleFonts already grabs all the baseFonts as long as you don't remove `...baseFonts` from the array)
31- icons are svg components stored in src/icons if you don't like my icon choices
32- add font files to the fonts folder. they have to be either ttf or otf (sorry, no woff/woff2, next/og hates those as it turns out)