add landing page for jfa-go.com; move wiki

located in `site/`. Wiki now @ wiki.jfa-go.com.
This commit is contained in:
Harvey Tindall 2021-06-30 00:23:05 +01:00
parent 788afa1025
commit b8d9d22545
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
12 changed files with 5825 additions and 4 deletions

2
.gitignore vendored
View File

@ -1,4 +1,6 @@
node_modules/
site/node_modules/
site/out/
mail/*.html
dist/
build/

View File

@ -17,4 +17,4 @@ Prefix each of these with `make DEBUG=on INTERNAL=off `:
* `email` will compile email mjml, and copy the text versions in to `build/data`.
* `copy` will copy iconography, html, language files and static data into `build/data`.
See the [wiki](https://jfa-go.com/docs/build/binary/) for more info.
See the [wiki](https://wiki.jfa-go.com/docs/build/binary/) for more info.

View File

@ -2,7 +2,7 @@
[![Build Status](https://drone.hrfee.dev/api/badges/hrfee/jfa-go/status.svg?ref=refs/heads/main)](https://drone.hrfee.dev/hrfee/jfa-go)
[![Docker Hub](https://img.shields.io/docker/pulls/hrfee/jfa-go?label=docker)](https://hub.docker.com/r/hrfee/jfa-go)
[![Translation status](https://weblate.hrfee.pw/widgets/jfa-go/-/svg-badge.svg)](https://weblate.hrfee.pw/engage/jfa-go/)
[![Docs/Wiki](https://img.shields.io/static/v1?label=documentation&message=jfa-go.com&color=informational)](https://jfa-go.com)
[![Docs/Wiki](https://img.shields.io/static/v1?label=documentation&message=jfa-go.com&color=informational)](https://wiki.jfa-go.com)
##### Downloads:
##### [docker](#docker) | [debian/ubuntu](#debian) | [arch (aur)](#aur) | [other platforms](#other-platforms)
@ -103,7 +103,7 @@ Run the executable to start.
#### Build from source
If you're using docker, a Dockerfile is provided that builds from source.
Otherwise, full build instructions can be found [here](https://jfa-go.com/docs/build/).
Otherwise, full build instructions can be found [here](https://wiki.jfa-go.com/docs/build/).
#### Usage
Simply run `jfa-go` to start the application. A setup wizard will start on `localhost:8056` (or your own specified address). Upon completion, refresh the page.

23
site/Makefile Normal file
View File

@ -0,0 +1,23 @@
all:
-mkdir -p out
cp index.html 404.html favicon.ico out/
cp -r node_modules/remixicon/fonts/remixicon.css node_modules/remixicon/fonts/remixicon.woff2 out/
npx esbuild --bundle base.css --outfile=out/bundle.css --external:remixicon.css --minify
npx uncss index.html 404.html --stylesheets out/bundle.css > out/_bundle.css
mv out/_bundle.css out/bundle.css
npx uncss index.html 404.html --stylesheets out/remixicon.css > out/_remixicon.css
mv out/_remixicon.css out/remixicon.css
npx esbuild --bundle ts/main.ts --outfile=out/main.js --minify
cp ../static/* out/
debug:
-mkdir -p out
cp index.html 404.html favicon.ico out/
cp -r node_modules/remixicon/fonts/remixicon.css node_modules/remixicon/fonts/remixicon.woff2 out/
npx esbuild --bundle base.css --outfile=out/bundle.css --external:remixicon.css --minify
npx esbuild --bundle ts/main.ts --sourcemap --outfile=out/main.js --minify
cp ../static/* out/
monitor:
npx live-server --watch=out --open=out/index.html &
npx nodemon -e html,css,ts -i out --exec "make debug"

3
site/README.md Normal file
View File

@ -0,0 +1,3 @@
Landing page for [jfa-go.com](https://jfa-go.com).
`make all/debug` will place content in `out/`. `make monitor` will monitor code for changes and refresh a browser preview.

13
site/base.css Normal file
View File

@ -0,0 +1,13 @@
@import "../css/base.css";
:root {
--c-1: #ffe3ef;
--c-2: rgba(173, 201, 233, 0.4);
--grad-base: rgb(238,174,202);
--grad: linear-gradient(45deg, rgba(238,174,202,0.5) 0%, rgba(148,187,233,0.5) 100%);
}
body {
background: #AA5CC3;
background: linear-gradient(90deg, #AA5CC3 0%, #00A4DC 100%) !important;
}

122
site/index.html Normal file
View File

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html lang="en" class="light-theme">
<head>
<link rel="stylesheet" type="text/css" href="bundle.css">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="Description" content="jfa-go, a better way to manage Jellyfin users.">
<meta name="color-scheme" content="dark light">
<link rel="apple-touch-icon" sizes="180x180" href="{{ .urlBase }}/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="{{ .urlBase }}/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="{{ .urlBase }}/favicon-16x16.png">
<link rel="manifest" href="{{ .urlBase }}/site.webmanifest">
<link rel="mask-icon" href="{{ .urlBase }}/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#603cba">
<meta name="theme-color" content="#ffffff">
<title>jfa-go - a better way to manage Jellyfin users</title>
</head>
<body class="max-w-full overflow-x-hidden section">
<div id="modal-deb" class="modal">
<div class="modal-content wide card ~neutral">
<span class="heading"> Debian/Ubuntu (apt)</span>
<pre class="monospace pre-line">
sudo apt-get update && sudo apt-get install curl apt-transport-https gnupg
curl https://apt.hrfee.dev/hrfee.pubkey.gpg | sudo apt-key add -
echo "deb https://apt.hrfee.dev trusty main" | sudo tee /etc/apt/sources.list.d/hrfee.list
sudo apt-get update
# For servers
sudo apt-get install jfa-go
# ------
# For desktops/servers with GUI (has dependencies)
sudo apt-get install jfa-go-tray
# ------
</pre>
</div>
</div>
<div id="modal-deb-unstable" class="modal">
<div class="modal-content wide card ~neutral">
<span class="heading"> Debian/Ubuntu (apt)</span>
<pre class="monospace pre-line">
sudo apt-get update && sudo apt-get install curl apt-transport-https gnupg
curl https://apt.hrfee.dev/hrfee.pubkey.gpg | sudo apt-key add -
echo "deb https://apt.hrfee.dev trusty-unstable main" | sudo tee /etc/apt/sources.list.d/hrfee.list
sudo apt-get update
# For servers
sudo apt-get install jfa-go
# ------
# For desktops/servers with GUI (has dependencies)
sudo apt-get install jfa-go-tray
# ------
</pre>
</div>
</div>
<div id="modal-docker" class="modal">
<div class="modal-content wide card ~neutral">
<span class="heading"> Docker</span>
<pre class="monospace pre-line">
docker create \
--name "jfa-go" \ # Whatever you want to name it
-p 8056:8056 \
# -p 8057:8057 if using tls
-v /path/to/.config/jfa-go:/data \ # Path to wherever you want to store the config file and other data
-v /path/to/jellyfin:/jf \ # Path to Jellyfin config directory, ignore if using Emby
-v /etc/localtime:/etc/localtime:ro \ # Makes sure time is correct
<span id="docker-stable">
hrfee/jfa-go
</span>
<span id="docker-unstable" class="unfocused">
hrfee/jfa-go:unstable
</span>
</pre>
</div>
</div>
<div class="page-container" id="page-container">
<div class="card ~neutral !low mb-1">
<div class="row col flex center">
<span class="heading welcome">jellyfin-accounts (go)</span>
</div>
<div class="row col flex center">
<p class="content">a better way to manage your Jellyfin users.</p>
</div>
<span class="row col flex center supra">links</span>
<div class="row col flex center">
<a class="button ~info mr-half mt-1 mb-1" href="https://github.com/hrfee/jfa-go">github</a>
<a class="button ~urge mt-1 mb-1 mr-half" href="https://wiki.jfa-go.com">wiki/docs</a>
<a class="button ~positive mt-1 mb-1" href="https://weblate.hrfee.dev">translation</a>
</div>
<p class="row col flex center supra">downloads</p>
<p class="row col flex center support">instructions can be found&nbsp<a target="_blank" href="https://github.com/hrfee/jfa-go#install">here</a></p>
<p class="row col flex center support">note: tray icon builds on linux require extra dependencies, see the github README for more info.</p>
<div class="row col flex center">
<span class="button ~neutral !high mr-1 mb-1 mt-1" id="download-stable">Stable</span>
<span class="button ~neutral mb-1 mt-1" id="download-unstable">Unstable</span>
</div>
<div class="row col flex center" id="sect-stable">
<a class="button ~info mr-half mb-half lang-link" target="_blank" href="https://github.com/hrfee/jfa-go/releases">windows/mac/linux</a>
<a class="button ~info mr-half mb-half lang-link" id="download-docker">docker</a>
<a class="button ~info mr-half mb-half lang-link" id="download-deb">debian/ubuntu</a>
<a class="button ~info mr-half mb-half lang-link" target="_blank" href="https://aur.archlinux.org/packages/jfa-go">arch (aur)</a>
<a class="button ~info mr-half mb-half lang-link" target="_blank" href="https://aur.archlinux.org/packages/jfa-go-bin">arch (aur binary)</a>
</div>
<div class="row col flex center unfocused" id="sect-unstable">
<a class="button ~info mr-half mb-half lang-link" target="_blank" href="https://dl.jfa-go.com/view/hrfee/jfa-go">windows/mac/linux</a>
<a class="button ~info mr-half mb-half lang-link" id="download-docker-unstable">docker</a>
<a class="button ~info mr-half mb-half lang-link" id="download-deb-unstable">debian/ubuntu</a>
<a class="button ~info mr-half mb-half lang-link" target="_blank" href="https://aur.archlinux.org/packages/jfa-go-git">arch (aur git)</a>
</div>
<section class="section ~neutral banner footer flex-expand middle">
<a href="https://github.com/hrfee/jfa-go/blob/main/LICENSE" class="support">© 2021 Harvey Tindall</a>
</section>
</div>
</div>
<script src="main.js"></script>
</body>
</html>

5592
site/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

18
site/package.json Normal file
View File

@ -0,0 +1,18 @@
{
"name": "jfa-go.com",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Harvey Tindall <hrfee@hrfee.dev>",
"license": "MIT",
"dependencies": {
"a17t": "^0.5.1",
"esbuild": "^0.8.56",
"live-server": "^1.2.1",
"remixicon": "^2.5.0",
"uncss": "^0.17.3"
}
}

38
site/ts/main.ts Normal file
View File

@ -0,0 +1,38 @@
import { Modal } from "../../ts/modules/modal.js";
import { whichAnimationEvent } from "../../ts/modules/common.js";
interface window extends Window {
animationEvent: string;
}
declare var window: window;
window.animationEvent = whichAnimationEvent();
const debModal = new Modal(document.getElementById("modal-deb"));
const debButton = document.getElementById("download-deb") as HTMLAnchorElement;
debButton.onclick = debModal.toggle;
const debUnstableModal = new Modal(document.getElementById("modal-deb-unstable"));
const debUnstableButton = document.getElementById("download-deb-unstable") as HTMLAnchorElement;
debUnstableButton.onclick = debUnstableModal.toggle;
const stableSect = document.getElementById("sect-stable");
const unstableSect = document.getElementById("sect-unstable");
const stableButton = document.getElementById("download-stable") as HTMLSpanElement;
const unstableButton = document.getElementById("download-unstable") as HTMLSpanElement;
stableButton.onclick = () => {
stableButton.classList.add("!high");
unstableButton.classList.remove("!high");
stableSect.classList.remove("unfocused");
unstableSect.classList.add("unfocused");
}
unstableButton.onclick = () => {
unstableButton.classList.add("!high");
stableButton.classList.remove("!high");
stableSect.classList.add("unfocused");
unstableSect.classList.remove("unfocused");
}

10
site/ts/tsconfig.json Normal file
View File

@ -0,0 +1,10 @@
{
"compilerOptions": {
"outDir": "../js",
"target": "es6",
"lib": ["dom", "es2017"],
"typeRoots": ["./typings", "../node_modules/@types"],
"moduleResolution": "node",
"esModuleInterop": true
}
}

View File

@ -215,7 +215,7 @@ html("language-description", window.lang.var("language", "description", `<a targ
html("email-description", window.lang.var("email", "description", `<a target="_blank" href="https://mailgun.com">Mailgun</a>`));
html("email-dateformat-notice", window.lang.var("email", "dateFormatNotice", `<a target="_blank" href="https://strftime.ninja/">strftime.ninja</a>`));
html("updates-description", window.lang.var("updates", "description", `<a target="_blank" href="https://builds.hrfee.dev/view/hrfee/jfa-go">buildrone</a>`));
html("messages-description", window.lang.var("messages", "description", `<a target="_blank" href="https://jfa-go.com">Wiki</a>`));
html("messages-description", window.lang.var("messages", "description", `<a target="_blank" href="https://wiki.jfa-go.com">Wiki</a>`));
const settings = {
"jellyfin": {