bruh
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#366FFF" viewBox="0 0 16 16">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="<!--DYN_REPLACECOLOR-->" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M15 2a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1zM0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm4.5 5.5a.5.5 0 0 0 0 1h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 1 0-.708.708L10.293 7.5z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 416 B |
@@ -1,4 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#366FFF" viewBox="0 0 16 16">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="<!--DYN_REPLACECOLOR-->" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5"/>
|
||||
<path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 506 B |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#366FFF" viewBox="0 0 16 16">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="<!--DYN_REPLACECOLOR-->" viewBox="0 0 16 16">
|
||||
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 682 B After Width: | Height: | Size: 698 B |
@@ -1,4 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#366FFF" viewBox="2.5 2 11 11">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="<!--DYN_REPLACECOLOR-->" viewBox="2.5 2 11 11">
|
||||
<path d="M4.715 6.542 3.343 7.914a3 3 0 1 0 4.243 4.243l1.828-1.829A3 3 0 0 0 8.586 5.5L8 6.086a1 1 0 0 0-.154.199 2 2 0 0 1 .861 3.337L6.88 11.45a2 2 0 1 1-2.83-2.83l.793-.792a4 4 0 0 1-.128-1.287z"/>
|
||||
<path d="M6.586 4.672A3 3 0 0 0 7.414 9.5l.775-.776a2 2 0 0 1-.896-3.346L9.12 3.55a2 2 0 1 1 2.83 2.83l-.793.792c.112.42.155.855.128 1.287l1.372-1.372a3 3 0 1 0-4.243-4.243z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 505 B |
@@ -1,4 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#366FFF" viewBox="0 0 16 16">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="<!--DYN_REPLACECOLOR-->" viewBox="0 0 16 16">
|
||||
<path d="M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5"/>
|
||||
<path d="M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 431 B After Width: | Height: | Size: 447 B |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#366FFF" viewBox="0 0 16 16">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="<!--DYN_REPLACECOLOR-->" viewBox="0 0 16 16">
|
||||
<path d="M5.026 15c6.038 0 9.341-5.003 9.341-9.334q.002-.211-.006-.422A6.7 6.7 0 0 0 16 3.542a6.7 6.7 0 0 1-1.889.518 3.3 3.3 0 0 0 1.447-1.817 6.5 6.5 0 0 1-2.087.793A3.286 3.286 0 0 0 7.875 6.03a9.32 9.32 0 0 1-6.767-3.429 3.29 3.29 0 0 0 1.018 4.382A3.3 3.3 0 0 1 .64 6.575v.045a3.29 3.29 0 0 0 2.632 3.218 3.2 3.2 0 0 1-.865.115 3 3 0 0 1-.614-.057 3.28 3.28 0 0 0 3.067 2.277A6.6 6.6 0 0 1 .78 13.58a6 6 0 0 1-.78-.045A9.34 9.34 0 0 0 5.026 15"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 559 B After Width: | Height: | Size: 575 B |
11
website/helpdesk/kbas/ECLS-Change_Password.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Change your ECLS password
|
||||
|
||||
1. Login to your ECLS account at https://login.enstrayed.com
|
||||
2. Select the settings icon in the top right of your screen <br>
|
||||

|
||||
3. Enter your new password twice and press 'Save' to change your password <br>
|
||||

|
||||
|
||||
## I can't login to my ECLS account
|
||||
|
||||
[Click here for information about how to reset your ECLS password](https://enstrayed.com/helpdesk/articles/ECLS-Reset_Password.md)
|
||||
17
website/helpdesk/kbas/Enstrayed_Cloud-App_Passwords.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Using App Passwords on Enstrayed Cloud
|
||||
|
||||
App Passwords are credentials used to access your Enstrayed Cloud account from a specific application or device. They are created automatically for many Nextcloud clients, or can be created manually using the steps below.
|
||||
|
||||
**As Enstrayed Cloud exclusively uses ECLS for sign on, you will need to create app passwords for any device that does not support browser login.**
|
||||
|
||||
To create an App Password:
|
||||
|
||||
1. Login to Enstrayed Cloud
|
||||
2. Select your profile image in the top right of the page and select 'Personal Settings'<br>
|
||||

|
||||
3. In the sidebar on the left side of the page, select 'Security'<br>
|
||||

|
||||
4. Enter a description for the app password, such as the device name or application, then select 'Create new app password'<br>
|
||||

|
||||
5. You will be presented with a username and unique password; You will use these credentials to access Enstrayed Cloud from your application.<br>
|
||||

|
||||
32
website/helpdesk/templates/article.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Enstrayed Helpdesk - <!--SSR_REPLACE_TITLE--></title>
|
||||
<link rel="stylesheet" href="/static/helpdesk/helpdesk.css">
|
||||
<script src="/static/helpdesk/login.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="headerbar">
|
||||
<h1>Enstrayed Helpdesk</h1>
|
||||
<a href="/helpdesk/ticket/new">Open Ticket</a>
|
||||
<a href="/helpdesk/articles">Knowledgebase</a>
|
||||
|
||||
<div class="headerbarright">
|
||||
<button id="loginButton" onclick="loginFunction()">Login</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="maincontent">
|
||||
<div class="articlecontent">
|
||||
<!--SSR_REPLACE_BODY-->
|
||||
</div>
|
||||
</div>
|
||||
<dialog id="globalDialog">
|
||||
<h2 id="globalDialogHeader">Warning</h2>
|
||||
<p id="globalDialogText">This is a warning</p>
|
||||
<button onclick="document.getElementById('globalDialog').close()">Dismiss</button>
|
||||
</dialog>
|
||||
</body>
|
||||
</html>
|
||||
@@ -25,20 +25,20 @@
|
||||
<div class="linkColumn">
|
||||
<div>
|
||||
<span>I'm filing a legal request, such as a DMCA takedown or other legal matter</span><br>
|
||||
<a href=""><img src="/static/icons/arrow-right.svg" alt="">Click here to start a Legal Request</a>
|
||||
<a href=""><img src="/dynamic/icon/arrow-right/366FFF" alt="">Click here to start a Legal Request</a>
|
||||
</div>
|
||||
<div>
|
||||
<span>I'm responsibly disclosing a problem, such a security vulnerability</span><br>
|
||||
<a href=""><img src="/static/icons/arrow-right.svg" alt="">Click here to start a Responsible Disclosure</a>
|
||||
<a href=""><img src="/dynamic/icon/arrow-right/366FFF" alt="">Click here to start a Responsible Disclosure</a>
|
||||
</div>
|
||||
<div>
|
||||
<span>I need help logging into my ECLS account</span><br>
|
||||
<a href=""><img src="/static/icons/external.svg" alt="">Click here to reset your ECLS password</a><br>
|
||||
<a href=""><img src="/static/icons/arrow-right.svg" alt="">Click here to start ECLS account recovery</a>
|
||||
<a href=""><img src="/dynamic/icon/external/366FFF" alt="">Click here to reset your ECLS password</a><br>
|
||||
<a href=""><img src="/dynamic/icon/arrow-right/366FFF" alt="">Click here to start ECLS account recovery</a>
|
||||
</div>
|
||||
<div>
|
||||
<span>I have another question or need to get in contact</span><br>
|
||||
<a href=""><img src="/static/icons/arrow-right.svg" alt="">Click here to start a General Inquiry</a>
|
||||
<a href=""><img src="/dynamic/icon/arrow-right/366FFF" alt="">Click here to start a General Inquiry</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -47,19 +47,19 @@
|
||||
<div class="linkColumn">
|
||||
<div>
|
||||
<span>How do I use Security Keys in ECLS?</span><br>
|
||||
<a href=""><img src="/static/icons/post.svg" alt="">Important ECLS FIDO2/Webauthn/Passkey Information</a>
|
||||
<a href=""><img src="/dynamic/icon/post/366FFF" alt="">Important ECLS FIDO2/Webauthn/Passkey Information</a>
|
||||
</div>
|
||||
<div>
|
||||
<span>How do I login to Jellyfin?</span><br>
|
||||
<a href=""><img src="/static/icons/post.svg" alt="">Logging into Jellyfin</a>
|
||||
<a href=""><img src="/dynamic/icon/post/366FFF" alt="">Logging into Jellyfin</a>
|
||||
</div>
|
||||
<div>
|
||||
<span>How do I change my ECLS password?</span><br>
|
||||
<a href=""><img src="/static/icons/post.svg" alt="">Change ECLS Password</a>
|
||||
<a href=""><img src="/dynamic/icon/post/366FFF" alt="">Change ECLS Password</a>
|
||||
</div>
|
||||
<div>
|
||||
<span>How do I use federation features in Enstrayed Cloud?</span><br>
|
||||
<a href=""><img src="/static/icons/post.svg" alt="">Enstrayed Cloud Federation Features</a>
|
||||
<a href=""><img src="/dynamic/icon/post/366FFF" alt="">Enstrayed Cloud Federation Features</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -16,19 +16,12 @@
|
||||
<body>
|
||||
<a href="/">Return to enstrayed.com</a>
|
||||
<h1>API Documentation</h1>
|
||||
<p>This page was last updated 2025-04-26.</p>
|
||||
<p>This page was last updated 2025-07-08.</p>
|
||||
|
||||
<p>Source Code & Issue Tracker: <a href="https://github.com/enstrayed/enstrayedapi">github.com/enstrayed/enstrayedapi</a></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="inlineheader">
|
||||
<h2>Important Note</h2>
|
||||
</div>
|
||||
|
||||
<p>Multiple API endpoints are being rewritten/added, especially relating to authentication & authorization, as part of a database change to Postgres. These changes are being made in the <a href="https://github.com/Enstrayed/enstrayedapi/tree/new-db">new-db</a> branch.</p>
|
||||
|
||||
|
||||
<div class="inlineheader">
|
||||
<h2>/api/nowplaying</h2>
|
||||
<a href="https://github.com/Enstrayed/enstrayedapi/blob/main/routes/nowplaying.js">nowplaying.js</a>
|
||||
@@ -140,6 +133,21 @@
|
||||
</div>
|
||||
<p><b>Internal Use Only. </b>This is the endpoint used by ECLS to finish the login flow. It will write the newly created token to the <code>APIToken</code> cookie as well as performing the action set by <code>state</code>, see <a href="#jumplink_authlogin">login endpoint</a>.</p>
|
||||
|
||||
<div class="inlineheader">
|
||||
<h2>/api/helpdesk/forms/*</h2>
|
||||
<a>helpdesk.js:15</a>
|
||||
<div><span>GET</span></div>
|
||||
</div>
|
||||
|
||||
<p><b>Internal Use Only. </b>Serves all files in the <code>website/helpdesk/forms</code> directory for use in the Helpdesk frontend.</p>
|
||||
|
||||
<!-- <div class="inlineheader">
|
||||
<h2>/dynamic/icon/*</h2>
|
||||
<a>dynamic.js:3</a>
|
||||
<div><span>GET</span></div>
|
||||
</div>
|
||||
|
||||
<p><b>Internal Use Only. </b>Returns the requested icon (stored in <code>website/dynamic/icons</code>) in any color (hex) specified in the URL. Example: <code>/dynamic/icon/github/00ff00</code> will return the GitHub logo in neon green.</p> -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
54
website/posts/20250619-UniFi-Network-on-Orange-Pi-Zero-3.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Setting up the UniFi Network Controller on an Orange Pi Zero 3
|
||||
|
||||
This page covers the steps I went through to setup the UniFi Network controller on an Orange Pi Zero 3. For no reason obvious to me, this process was overcomplicated and very annoying.
|
||||
|
||||
## Background / The Problem
|
||||
I purchased the Orange Pi Zero 3 because it was cheap and I wanted to move my UniFi controller out of the Docker container on my main server. The idea was to create a DIY UniFi CloudKey, hence I called mine `shitty-cloudkey`. On the surface, this is rather trivial; Ubiquiti's apt repository includes `arm64` packages and the UniFi controller itself is a Java application, making it rather portable.
|
||||
|
||||
The problem is that the UniFi controller depends on MongoDB for its database, and [MongoDB's system requirements](https://www.mongodb.com/docs/manual/administration/production-notes/#arm64) require the ARM V8.4-A microarchitecture at minimum (in english: Cortex A73 cores or later). The Zero 3 has Cortex A53 cores, which do not have the instruction sets required. I never really investigated the reasoning for this, but given that this makes Mongo's published builds incompatible with the Raspberry Pi 4, I find it rather strange, since that doesn't really strike me as an especially old SBC?
|
||||
|
||||
## Part 1: Installing Armbian
|
||||
I'll be honest, I normally don't mess around with SBCs so had no idea what the go-to distro was for RasPi clones. After what was probably less than 30 seconds of searching, I decided to use Armbian since it did exactly what I needed: Debian 12 ready to go.
|
||||
|
||||
1. the boring shit
|
||||
* `winget install balena.etcher`
|
||||
1. Download https://dl.armbian.com/orangepizero3/Bookworm_current_minimal
|
||||
2. select the file, select your sd card, press flash, blah blah blah
|
||||
2. the slightly less boring shit
|
||||
1. plug in the SD card, ethernet & power, wait for it to startup
|
||||
2. go to your dhcp server and find whatever IP it grabbed for itself
|
||||
3. `ssh root@<that ip address>`, default password is `1234` (Thank you armbian devs for letting you do the install process remotely)
|
||||
4. Go through the setup process, now is a great time to do a `apt update && apt upgrade`, set a hostname and possibly static IP address
|
||||
5. reboot for good measure
|
||||
|
||||
## Part 2: Installing MongoDB the dumb way
|
||||
|
||||
1. Download and install `libssl1.1`, I don't actually know if this is required anymore but it stops apt from complaining
|
||||
1. `curl -OL https://archive.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb10u3_arm64.deb`
|
||||
2. `sudo dpkg -i libs<tab complete>`
|
||||
2. Download and install some old version of MongoDB I found; Won't actually be using the binary from this, but it gives us the systemd unit file and resolves the dependency in apt
|
||||
1. `curl -OL https://repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/4.4/multiverse/binary-arm64/mongodb-org-server_4.4.29_arm64.deb`
|
||||
2. `sudo dpkg -i mong<tab complete>`
|
||||
3. Download a `mongod` binary that actually works from a [MongoDB employee's personal GitHub](https://github.com/themattman/mongodb-raspberrypi-binaries) yes really
|
||||
* You may want to check for a more up to date build but w/e, select the one marked `pi4`
|
||||
1. `curl -OL https://github.com/themattman/mongodb-raspberrypi-binaries/releases/download/r7.0.14-rpi-unofficial/mongodb.ce.pi4.r7.0.14.tar.gz`
|
||||
2. `tar xvf mong<tab complete>`
|
||||
3. `sudo mv mongod /usr/bin/mongod`
|
||||
* Side note that I discovered later: UniFi manages the mongod process directly so you can keep the systemd service disabled.
|
||||
|
||||
## Part 3: Installing UniFi Network
|
||||
This next section is loosly modified from Ubiquiti's official setup instructions: https://help.ui.com/hc/en-us/articles/220066768-Updating-and-Installing-Self-Hosted-UniFi-Network-Servers-Linux
|
||||
|
||||
1. `sudo apt-get update && sudo apt-get install ca-certificates apt-transport-https`
|
||||
2. `echo 'deb [ arch=amd64,arm64 ] https://www.ui.com/downloads/unifi/debian stable ubiquiti' | sudo tee /etc/apt/sources.list.d/100-ubnt-unifi.list`
|
||||
3. `curl -L -o /etc/apt/trusted.gpg.d/unifi-repo.gpg https://dl.ui.com/unifi/unifi-repo.gpg`
|
||||
4. `sudo apt update`
|
||||
5. `sudo apt install unifi`
|
||||
|
||||
## The End
|
||||
UniFi should be up and running by this point, if it isn't then bash it with `sudo systemctl restart unifi` until it shows something at `https://<ip here>:8443`. If that still doesnt work, `sudo cat /usr/lib/unifi/logs/server.log` may provide a clue, or maybe it wont. FEW MORE THINGS:
|
||||
|
||||
* If you are migrating from another UniFi network install, FOR THE LOVE OF GOD DO NOT USE THE RESTORE BUTTON DURING THE INITIAL SETUP. Go through the setup process, *set your password*, and then go into Settings > System > Backups and use the restore button there.
|
||||
* If you, like me, did the above and found out that everything breaks, you can factory reset it by changing `is_default=` to `true` in `/var/lib/unifi/system.properties`. Don't forget to change it back after you run through the setup again.
|
||||
* I shat out this article at 1 AM so basically did no proof-reading or fact checking so the section about MongoDB's system requirements is probably wrong, LOL.
|
||||
* Armbian has a lot of warnings about using community editions and I got a rather loud warning during my install saying that I was using an automated build that wasn't for production use. It wasn't marked as such on the website and frankly I don't care. I have to assume this is supposed to be normie-proofing but it, like this entire ordeal, strikes me as bizarre. Recommendation: make sure to take backups somewhat often.
|
||||
BIN
website/static/bridge2.jpg
Normal file
|
After Width: | Height: | Size: 645 KiB |
@@ -51,6 +51,25 @@ body {
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
.articlecontent {
|
||||
background-color: #fff;
|
||||
padding: 2em;
|
||||
margin: 2em 0 2em;
|
||||
max-width: 100ch;
|
||||
}
|
||||
|
||||
.articlecontent > h1 {
|
||||
margin: 0 0 0.5em;
|
||||
}
|
||||
|
||||
.articlecontent > ol > li {
|
||||
margin: 0 0 0.2em;
|
||||
}
|
||||
|
||||
.articlecontent img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.linkColumn {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -1,14 +1,26 @@
|
||||
html {
|
||||
background-color: #0f0f0f;
|
||||
background-image: url('/static/bridge2.jpg');
|
||||
/*! background-size: 100%; */
|
||||
background-position-y: 50%;
|
||||
background-position-x: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Segoe UI Variable', sans-serif;
|
||||
font-family: 'Segoe UI Variable Text', sans-serif;
|
||||
height: 100%;
|
||||
|
||||
background-color: #282828;
|
||||
|
||||
|
||||
display: grid;
|
||||
place-items: center;
|
||||
|
||||
|
||||
backdrop-filter: blur(10px);
|
||||
|
||||
color: #fff;
|
||||
|
||||
}
|
||||
|
||||
.mainContent {
|
||||
@@ -18,13 +30,18 @@ body {
|
||||
gap: 2.5em;
|
||||
|
||||
padding: 2em;
|
||||
background-color: #fdfdfd;
|
||||
box-shadow: 0 0 1em 0 #202020;
|
||||
background-color: #0f0f0f;
|
||||
box-shadow: 0 0 1em 0 #0f0f0f;
|
||||
|
||||
|
||||
position: relative;
|
||||
margin-top: 96px;
|
||||
}
|
||||
|
||||
.mainContent > div > h1, h2 {
|
||||
margin: 0 0 0.5em;
|
||||
}
|
||||
|
||||
.linkColumn {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -63,19 +80,27 @@ body {
|
||||
}
|
||||
|
||||
.blogPostsList > ul {
|
||||
list-style-image: url('/static/icons/post.svg');
|
||||
list-style-image: url('/dynamic/icon/post/7CB342');
|
||||
list-style-position: inside;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
gap: 0.5em;
|
||||
}
|
||||
|
||||
.blogPostsList > ul > li {
|
||||
margin: 0.5em 0 0;
|
||||
font-family: Consolas, monospace;
|
||||
}
|
||||
|
||||
.blogPostsList > ul > li > a {
|
||||
font-family: 'Segoe UI Variable', sans-serif;
|
||||
}
|
||||
|
||||
a, a:link {
|
||||
color: #366FFF;
|
||||
color: #7CB342;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #ff8266;
|
||||
color: #9CCC65;
|
||||
}
|
||||
|
||||
a > img {
|
||||
|
||||
@@ -6,7 +6,7 @@ html {
|
||||
|
||||
body {
|
||||
margin: 2em 0 0 0;
|
||||
font-family: 'Segoe UI Variable', sans-serif;
|
||||
font-family: 'Segoe UI Variable Text', sans-serif;
|
||||
|
||||
background-color: #202020;
|
||||
color: #F1F1F1;
|
||||
@@ -40,4 +40,23 @@ a:hover {
|
||||
padding: 0.2rem;
|
||||
color: white;
|
||||
background-color: #f06445;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 120%;
|
||||
}
|
||||
|
||||
code {
|
||||
background: #181818;
|
||||
line-height: 130%;
|
||||
padding: 0 0.1rem 0;
|
||||
font-family: Consolas, monospace;
|
||||
}
|
||||
|
||||
pre code {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
white-space: pre-wrap;
|
||||
background: #181818;
|
||||
padding: 1rem;
|
||||
}
|
||||
@@ -16,6 +16,7 @@
|
||||
height: 100%;
|
||||
color: #fff;
|
||||
background-color: #0b0b0b;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
body > div {
|
||||
|
||||
@@ -37,20 +37,20 @@
|
||||
<div class="linkColumn">
|
||||
<div>
|
||||
<span>I received an Email from @enstrayed.com</span><br>
|
||||
<a href="https://helpdesk.enstrayed.com"><img src="/static/icons/external.svg" alt="">Click here for information about EOES</a>
|
||||
<a href="https://helpdesk.enstrayed.com"><img src="/dynamic/icon/external/7CB342" alt="">Click here for information about EOES</a>
|
||||
</div>
|
||||
<div>
|
||||
<span>I need help with an Enstrayed.com web service</span><br>
|
||||
<a href="https://helpdesk.enstrayed.com"><img src="/static/icons/external.svg" alt="">Click here to visit the Helpdesk</a>
|
||||
<a href="https://helpdesk.enstrayed.com"><img src="/dynamic/icon/external/7CB342" alt="">Click here to visit the Helpdesk</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="/urltoolbox"><img src="/static/icons/link.svg" alt="">URL Toolbox</a>
|
||||
<a href="/urltoolbox"><img src="/dynamic/icon/link/7CB342" alt="">URL Toolbox</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="/posts/20240409-API-Documentation.html"><img src="/static/icons/link.svg" alt="">API Documentation</a>
|
||||
<a href="/posts/20240409-API-Documentation.html"><img src="/dynamic/icon/link/7CB342" alt="">API Documentation</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://downloads.enstrayed.com"><img src="/static/icons/link.svg" alt="">Downloads</a>
|
||||
<a href="https://downloads.enstrayed.com"><img src="/dynamic/icon/link/7CB342" alt="">Downloads</a>
|
||||
</div>
|
||||
<div class="apiVersion">
|
||||
<!--SSR_APIVERSION-->
|
||||
@@ -61,8 +61,8 @@
|
||||
<!-- <img src="/static/snow-leopard.svg" alt="Snow Leopard Icon" width="64"> -->
|
||||
<h1>@Enstrayed</h1>
|
||||
<div class="linkColumn marginBottom1em">
|
||||
<a href="https://twitter.com/enstrayed"><img src="/static/icons/twitter.svg" alt="">Twitter</a>
|
||||
<a href="https://github.com/enstrayed"><img src="/static/icons/github.svg" alt="">GitHub</a>
|
||||
<a href="https://twitter.com/enstrayed"><img src="/dynamic/icon/twitter/7CB342" alt="">Twitter</a>
|
||||
<a href="https://github.com/enstrayed"><img src="/dynamic/icon/github/7CB342" alt="">GitHub</a>
|
||||
</div>
|
||||
|
||||
<div class="blogPostsList">
|
||||
|
||||