Hosts all iterations of abtmtr.link, successful or otherwise.
  • JavaScript 79.8%
  • Less 20.2%
Find a file
MeowcaTheoRange 569384530f MeltTheICE
2026-01-14 22:57:24 -06:00
.vscode OH??? This is a change. Oops! Clean this up. 2025-12-18 16:49:33 -06:00
assets Change registration instructions again, add basic terms of service, and add opensearch instructions to s.abtmtr.link. 2026-01-13 04:12:20 -06:00
express Change registration instructions again, add basic terms of service, and add opensearch instructions to s.abtmtr.link. 2026-01-13 04:12:20 -06:00
scripts Add linked roles script 2025-12-20 15:05:39 -06:00
views MeltTheICE 2026-01-14 22:57:24 -06:00
.gitignore Separate linked role verification from the Discord bot, expand on OAuth functionality 2025-12-20 10:38:07 -06:00
example.config.json Affiliate with Git Gud ring, add fork link, add webstring proxy, fix state vulnerability 2025-12-22 11:21:17 -06:00
index.js implement git hook restart 2025-12-24 12:52:12 -06:00
package.json ...package json script 2025-12-20 15:06:17 -06:00
README.md Change NPM command to reflect abtmtr production 2025-12-24 13:19:09 -06:00

abtmtr.link v15

v15 is a monorepo for various subdomains under abtmtr.link. It's built on Node.js and Express, and uses few cosmetic dependencies.

Dependencies

Runs mainly on Node.js LTS Krypton (v24).

Setup

Development environment

# Clone repo
git clone -b v15 --single-branch \
    "https://codeberg.org/MeowcaTheoRange/abtmtr.link.git" \
    abtmtr
cd abtmtr

# Install node (optional)
nvm install lts/krypton
nvm use lts/krypton

# Install node modules.
npm i

# Copy config.json
cp example.config.json dev.config.json

# Generate password
npm run pass-gen

# Configure config.json
${EDITOR:-nano} -e dev.config.json
SERVER_HOST=$(jq -r '.general.server_host' dev.config.json)
PORT=$(jq -r '.general.port' dev.config.json)

# Configure hosts
echo "127.0.0.1 $SERVER_HOST cdn.$SERVER_HOST s.$SERVER_HOST discord.$SERVER_HOST mc.$SERVER_HOST" | sudo tee -a /etc/hosts

Running

In a development environment, you can do npm run dev to get a nodemon session running. Otherwise, if you don't have Nodemon, or just want to run the dev environment once, do ENV=dev node index.js.

In a production environment, configure any scripts to execute npm run prod from the root directory as the user that owns dev.config.json.

Here's an example systemd service:

[Unit]
Description=abtmtr.link v15 Daemon
After=network.target

[Service]
WorkingDirectory=/var/www/abtmtr/
ExecStart=/usr/local/bin/node index.js
Environment="ENV=prod"
User=[YOUR_USER]
Group=www-data
Restart=always

[Install]
WantedBy=multi-user.target

Services

Currently, abtmtr.link v15 contains these services:

  • Teo'ne (SERVER_HOST)

    Regular abtmtr.link. Has a frontpage mascot area, character listings, webmaster info, and more.
  • Stronghold (cdn.SERVER_HOST)

    A filesystem indexer and host. Depends on Node FS, supports ranged file streaming.
  • Labyrinth (s.SERVER_HOST)

    A frontend for any SearXNG instance that supports JSON output.
  • Discord (discord.SERVER_HOST)

    A site designed mainly as an introduction to abtmtr.link's Discord server.