|
||
---|---|---|
javascript | ||
scripts | ||
static | ||
tmpl | ||
.gitignore | ||
LICENSE | ||
README.md | ||
requirements.txt | ||
runserver.py | ||
settings.py | ||
site_ctrl.py |
README.md
HIDEN's website
This is my personal website, plus microservices/APIs for various HIDNet services (namely HBot). You can find the website at https://hiden.pw.
Usage instructions
Requirements
- Python 3.9 or newer, 3.11 recommended
- pip
- Tesseract (for the OCR API)
Officially supported OSes
- Windows 8.1 or newer
- macOS 10.9 or newer
- Debian 11 or newer
- Ubuntu 22.04 or newer
- Fedora 33 or newer
- Any other Linux distribution that supports Python 3.9+
You will not receive technical assistance if you are using an unsupported OS, or if you're using a workaround to run this on an unsupported OS (such as Cygwin on older versions of Windows.)
This project is optimized for (especially) Linux and Windows, so support may be iffy if you're running it on anything else.
Installing the required packages
Install the requirements using pip: pip install -r requirements .txt
. If you don't have pip, install it.
Configuration
Create settings_local.py
. The available options are as follows:
PORT
: The port that the server will use. Change this to something else if you already have something running on port 80, or if you do not have root privileges on *nix.
ENABLE_LOGGING
: Logs every connection to the server in the terminal output.
LOG_TO_FILE
: Outputs the aforementioned connection logs to a file instead. You must set ENABLE_LOGGING
to True
as well to use this.
DEV_MODE
: Enables W.I.P. and/or experimental content. The content is served at /dev
. NOTE FOR DEVELOPERS: Enabling this is highly recommended.
MCHOST
: What host to try for the Minecraft server.
MCPORT
: What port the aforementioned host is using for the Minecraft server.
GMODHOST
: What host to try for the Garry's Mod server.
GMODPORT
: What port the aforementioned host is using for the Garry's Mod server.
SERVE_STATIC
: Serves the /static
directory (images, CSS stylesheets, old stuff).
SERVE_STORAGE
: Serves the /storage
directory (software, cursors).
SERVE_JS
: Serves JavaScript content.
APRILFOOLS_2022
: Enables the April Fools day holiday page that was used in 2022.
APRILFOOLS_2023
: Enables the April Fools day holiday page was intended to be used in 2023, but was cancelled due to a tornado hitting my city at the time.
APRILFOOLS_2024
: Enables the April Fools day holiday page that will be used in 2024.
ENABLE_APIS
: Enable APIs for various services, mainly used by HBot.
CAT_API_KEY
: Used for supplying an API key for the cat API.
LASTFM_API_KEY
: Used for supplying an API key for last.fm. Used for the site's last.fm integration.
LASTFM_API_SECRET
: Specifies a shared secret for last.fm.
LASTFM_USERNAME
: What last.fm account will be used for scrobbling data.
ENCRYPTED_KEY
: Encrypted key required for admin operations.
TOKEN_EXPIRATION
: How long it takes for the auth token to expire (in seconds). Default is 15 minutes.
HBOT_VERSION
: The latest version of HBot. Used for it's updater.
HBOT_VERSION_DATE
: The release date of said HBot version. Also used for it's updater. Importing date
from datetime
is required to use this.
You must create settings_local.py
to start the server. However, you do not need to add content the the file. If the file is empty, the default options in settings.py
will be used instead.
Post-configuration
For scripts inside the scripts directory to work properly, you may need to set the PYTHONPATH environment variable. Add this to your .bashrc:
export PYTHONPATH=..:$PYTHONPATH
Once configuration is done, start the server with runserver.py
.
For production environments, I heavily recommend an NGINX or Caddy reverse proxy. Apache is known to be iffy in this context, so using the other two is the way to go IMHO.
After this, you should be ready to go!
Reporting problems
If you encounter any issues/bugs, put them in the Issues
tab of this repository, or shoot me a message at one of the services listed at /about/socials.
Here's an example template you could use (intended for an issue with the backend):
OS: Some OS
Python ver: 3.XX.X
Using a reverse proxy?: yes/no
If yes, what web server?: Some web server
Post your settings_local.py file: Self explanatory
Description of the issue: Blah blah blah is not working
How do I reproduce the issue?: you do X and then Y and it breaks
(Screenshot and/or terminal output here)
To report an issue with the pages themselves, you can use this template:
OS: Some OS
Browser: Some Browser v1.0
What extensions are installed?: Foo the Bar v1.0
Type of device?: PC/phone/etc
Screen resolution: WxH
Description of the issue: blah blah is broken
(Screenshot here)