aidxnFUN
Built with Tailwind CSS, EJS, Express.js, and Node.js for a backend for it all. This is a more modern version of design. This project is released under the CC0-1.0 license. The code and content are in the public domain.
Install and self-host
Have a weird obsession? Want a pre-built site you can use for free? Host aidxnFUN!
As the code is available under the CC0-1.0 license, which means you should feel free and encouraged to change content, design, whatever!
During this process, node
(20.08.0), npm
, and netcat
will be installed on your computer.
Please note the /status endpoint will be broken with the original servers as CORS is blocked on sites not requesting from my personal domain.
Debian/Ubuntu/Other Debian-based systems
- Clone the repo
git clone https://github.com/ihatenodejs/aidxnFUN cd aidxnFUN
- Setup
manage
./manage setup
- Start the server
A server will now start on port :5566, and be accessible from your web browser at http://localhost:5566/. I highly suggest creating a NGINX reverse proxy for this, especially if you plan to point this to a domain../manage up
Windows
Windows is currently not supported by aidxnFUN yet. I suggest you use WSL, and follow the Ubuntu instructions, or purchase a VPS.
How it works
This website uses Node.js, Express.js for a server, EJS for templating, and Tailwind CSS for the frontend CSS.
The manage
script uses all of those tools to manage the server for you executes the repetitive tasks for you automatically.
The views contain both regular page shards (full-ish pages) and generic shards (fragments of pages, widgets, etc.). I define a "shard" as an EJS template, which are pieced together into a pretty little website. The shards hold individual elements like music widgets, while a regular page shard is the page that contains the music widget, which the end user sees. This is helpful for understanding the code.
Thus far, shards are included for a music widget, the header, and the footer of the pages.
Music (as featured on the home page) is fetched from an API (hosted on https://biancarosa.com.br), which I am in the process of setting up for myself. It works with a LastFM account (I linked this to my Spotify) and can track your live listening with amazing accuracy. The repo can be found at biancarosa/lastfm-last-played.
Using the manage
script
You may have noticed you have a manage
file after cloning.
manage
is a command-line tool to manage the server. It can automatically start, stop, and restart your instance.
This script only supports Linux-based systems.
First, you must complete the setup with the following commands:
chmod +x manage
./manage setup
After doing that, you are now ready to use the script.
manage
usage
./manage [command] [options]
manage
commands
./manage up
- Builds the project and starts the server../manage down
- Stops the server../manage restart
- Restarts the server../manage status, -s, --status
- Checks if the server is running../manage help, -h, --help
- Shows the help message.
Troubleshooting
I highly suggest you take a peek at the node.log
file's contents. It's in the same directory as the manage
script. This file contains the NodeJS server logs, which can be very helpful for debugging and/or troubleshooting.
To-Do
- Implement PGP message verification
- Add menu link to tilde website
- Update projects page to latest information