initial commit
This commit is contained in:
102
.gitignore
vendored
Normal file
102
.gitignore
vendored
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
### Generic ###
|
||||||
|
|
||||||
|
# VIM
|
||||||
|
*.sw*
|
||||||
|
*.vim*
|
||||||
|
*.obsession*
|
||||||
|
|
||||||
|
# misc. garbage
|
||||||
|
*.bak
|
||||||
|
*.old*
|
||||||
|
~*
|
||||||
|
*~
|
||||||
|
-
|
||||||
|
|
||||||
|
# Damn you steve jobs!!!!
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# vscope
|
||||||
|
.vscode/*
|
||||||
|
*.code-workspace
|
||||||
|
.history/
|
||||||
|
|
||||||
|
# potential credentials
|
||||||
|
*.pem
|
||||||
|
*.secret
|
||||||
|
*.key
|
||||||
|
**/credentials.json
|
||||||
|
**/client_secrets.json
|
||||||
|
**/client_secret.json
|
||||||
|
*creds*
|
||||||
|
*.dat
|
||||||
|
*password*
|
||||||
|
*.httr-oauth*
|
||||||
|
*.env
|
||||||
|
!*.sample.env
|
||||||
|
|
||||||
|
# C/C++
|
||||||
|
*.o
|
||||||
|
*.out
|
||||||
|
*.a
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
.clirope
|
||||||
|
*.egg-info
|
||||||
|
build
|
||||||
|
dist
|
||||||
|
coverage.json
|
||||||
|
htmlcov
|
||||||
|
*.spec
|
||||||
|
.coverage
|
||||||
|
|
||||||
|
# Archives
|
||||||
|
*.zip
|
||||||
|
*.tar
|
||||||
|
*.rar
|
||||||
|
*.tar.*
|
||||||
|
*.tzst
|
||||||
|
*.tgz
|
||||||
|
*.txz
|
||||||
|
*.zst
|
||||||
|
*.gz
|
||||||
|
|
||||||
|
# Multimedia
|
||||||
|
*.xcf
|
||||||
|
*.svg
|
||||||
|
*.jpg
|
||||||
|
*.jpeg
|
||||||
|
*.png
|
||||||
|
*.avif
|
||||||
|
*.gif
|
||||||
|
*.pdf
|
||||||
|
*.gv
|
||||||
|
!img/*.jpg
|
||||||
|
!img/*.png
|
||||||
|
!img/*.svg
|
||||||
|
!img/*.gv
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
|
cmake_install.cmake
|
||||||
|
*.cmake
|
||||||
|
.cmake
|
||||||
|
.skbuild-info.json
|
||||||
|
CMakeInit.txt
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
|
||||||
|
target
|
||||||
|
|
||||||
|
### Project-specific ###
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
25
wiki/bardak.md
Normal file
25
wiki/bardak.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Bardak
|
||||||
|
|
||||||
|
<https://bardak.klank.school> is what we use to "manage" our "inventory"
|
||||||
|
at klankschool.
|
||||||
|
|
||||||
|
Username: `klankschool`
|
||||||
|
Password: `klankschool`
|
||||||
|
|
||||||
|
Bardak is a webapp developed by maybetree.
|
||||||
|
The source code is [on github](https://github.com/maybeetree/bardak),
|
||||||
|
while our particular configuration is on
|
||||||
|
[our gitea](https://code.klank.school/maybetree/klankschool-bardak>.
|
||||||
|
|
||||||
|
For paranoia reasons, bardak runs inside a rootless Podman container.
|
||||||
|
This is managed by usermode systemd as the `maybetree` user
|
||||||
|
(consult the `klankschool-bardak` repo for more info).
|
||||||
|
It runs on port 8085,
|
||||||
|
which is reverse proxied by [Nginx](nginx.md) to
|
||||||
|
<https://bardak.klank.school>
|
||||||
|
to add SSL and authentication via [HTTP Basicauth](http-basicauth.md).
|
||||||
|
|
||||||
|
## Our conventions for maintaining the inventory
|
||||||
|
|
||||||
|
just do whatever
|
||||||
|
|
||||||
26
wiki/dynamic-dns.md
Normal file
26
wiki/dynamic-dns.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Dynamic DNS
|
||||||
|
|
||||||
|
Public IP of Catu changes sometimes. Therefore,
|
||||||
|
dynamic DNS is needed.
|
||||||
|
|
||||||
|
`klank.school` domain name is managed by the Porkbun
|
||||||
|
registrar and nameservers which have a nice
|
||||||
|
[API](https://porkbun.com/api/json/v3/documentation).
|
||||||
|
We have a script called `/usr/local/bin/dynamic-dns` which
|
||||||
|
queries the current public IP using ipinfo.io
|
||||||
|
and updates the existing DNS records to use it.
|
||||||
|
|
||||||
|
The script is called by a cronjob somewhere idk dont ask me.
|
||||||
|
|
||||||
|
The old version of the script written by Riviera
|
||||||
|
is under `/usr/local/bin/dynamic-dns.riviera`.
|
||||||
|
New version is written by maybetree and makes it easier
|
||||||
|
to add new records.
|
||||||
|
Just edit `/usr/local/bin/klankdns.secret.toml`
|
||||||
|
and run the scripts.
|
||||||
|
|
||||||
|
The script is very jank but it works and thats what matters.
|
||||||
|
It's developed on our gitea: <https://code.klank.school/maybetree/klankdns>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
27
wiki/http-basicauth.md
Normal file
27
wiki/http-basicauth.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# HTTP Basicauth
|
||||||
|
|
||||||
|
HTTP Basicauth is a username-password login mechanism that
|
||||||
|
is built in directly into the HTTP protocol.
|
||||||
|
Basically every HTTP client supports it,
|
||||||
|
and it's simple to set up with most http servers and reverse proxies.
|
||||||
|
|
||||||
|
We use HTTP Basicauth for adding authentication to [Bardak](bardak.md).
|
||||||
|
|
||||||
|
## How to configure it
|
||||||
|
|
||||||
|
Inside nginx `location` block:
|
||||||
|
```
|
||||||
|
auth_basic "Custom message to the user goes here";
|
||||||
|
auth_basic_user_file /etc/nginx/somefile.htpasswd;
|
||||||
|
```
|
||||||
|
|
||||||
|
Generating the `.htpasswd` (extension can be anything,
|
||||||
|
"htpasswd" is just a convention) file is done with `htpasswd`
|
||||||
|
utility from `apache2-utils` package:
|
||||||
|
|
||||||
|
```
|
||||||
|
htpasswd -B /etc/nginx/somefile.htpasswd USERNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
(by default password is read from stdin)
|
||||||
|
|
||||||
4
wiki/incus.md
Normal file
4
wiki/incus.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Incus
|
||||||
|
|
||||||
|
Incus is a container and vm engine.
|
||||||
|
We run
|
||||||
25
wiki/nginx.md
Normal file
25
wiki/nginx.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Nginx
|
||||||
|
|
||||||
|
Nginx is a web server and reverse proxy.
|
||||||
|
We use it for klank.school website.
|
||||||
|
Actually, we use it twice over,
|
||||||
|
once on the host,
|
||||||
|
and once inside an [Incus](incus.md) containter.
|
||||||
|
|
||||||
|
The host nginx currently has an issue
|
||||||
|
where it somehow escapes systemd supervision
|
||||||
|
I think this happens because
|
||||||
|
the incus container takes a while to start,
|
||||||
|
and its hostname is specified in the nginx host config,
|
||||||
|
so when nginx on host starts before the container is ready
|
||||||
|
it crashes and restarts and somehow
|
||||||
|
becomes orphaned.
|
||||||
|
To fix, just `killall nginx`
|
||||||
|
and restart it with systemd.
|
||||||
|
|
||||||
|
## SSL
|
||||||
|
|
||||||
|
SSL is managed by certbot just normally in that mode where
|
||||||
|
it rewrites your nginx config.
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user