Merge branch 'dev' into vhs

This commit is contained in:
Malin Freeborn 2023-09-23 09:29:51 +02:00
commit 17b90a54cb
Signed by: andonome
GPG Key ID: 52295D2377F4D70F
4 changed files with 157 additions and 6 deletions

9
data/calcurse.md Normal file
View File

@ -0,0 +1,9 @@
---
title: "calcurse"
tags: [ "data", "calendar", "daylight savings" ]
---
## Setup
The UK government keeps an ics file with clock, [here](https://www.gov.uk/when-do-the-clocks-change/united-kingdom.ics).

126
data/radicale.md Normal file
View File

@ -0,0 +1,126 @@
---
title: "radicale and nginx"
tags: [ "data", "calendar" ]
---
Check before you start:
- you have a normally running site on nginx already.
- your server has the directory `/etc/nginx/sites-enabled/` enabled in the nginx config.
## Installation and Service
Install `radicale` through your package manager (not `pip`).
The standard `radicale` package should come with a nice `systemd` service file.
If the service comes already-started, stop it immediately:
```bash
sudo systemctl stop radicale
```
## Set up Passwords
Edit `/etc/radicale/config`, changing the `[auth]` section from this:
```
#type = none
```
...to this:
```
#type = htpasswd
```
If the service is started, restart it to make sure nobody can sign in without a password.
Next, find the `htpasswd` program.
You might get it in the `apache` package or similar.
`htpasswd` allows you to generate passwords for users, and place them in `/etc/radicale/users`.
```bash
PASS="$(xkcdpass)
htpasswd -nb $USER "$PASS" | sudo tee -a /etc/radicale/users
echo "Your username is $USER"
echo "Your password is $PASS"
```
Right now, you can't sign into the server except through the localhost, which is pointless.
So now we add a subdomain to `nginx`.
```nginx
echo '
server {
if ($host = cal.DOMAIN) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name cal.DOMAIN;
location / {
proxy_pass http://localhost:5232;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name cal.DOMAIN;
ssl_certificate /etc/letsencrypt/live/cal.DOMAIN/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/cal.DOMAIN/privkey.pem; # managed by Certbot
location / {
proxy_pass http://localhost:5232;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
' > /etc/nginx/sites-available/radicale
sudo ln -s /etc/nginx/sites-available/radicale /etc/nginx/sites-enables/
```
Finally, replace the example `DOMAIN` with your actual domain name.
```bash
DOMAIN=whatever.com
sudo sed -i "s/DOMAIN/$DOMAIN/g" /etc/nginx/sites-available/radicale
```
(optional: replace that `cal.` prefix with anything else)
Check nginx is happy:
```bash
sudo nginx -t
```
You will almost certainly need a new SSL certificate for the site:
```bash
sudo certbod -d cal.$DOMAIN
```
Start or restart both services:
```bash
sudo systemctl start radicale
sudo systemctl restart nginx
```
You should now be able to log into your calendar, and add it to a phone.
NB: you don't need the port number.

View File

@ -1,6 +1,6 @@
---
title: "Terminal Tips"
tags: [ "Documentation", "System" ]
title: "bash tips"
tags: [ "Documentation", "Shell", "POSIX" ]
---
## Track Live Changes
@ -67,6 +67,18 @@ Add number to variables with:
`((n--))` works identically.
### POSIX WARNING
The number commands above work in `bash`, but not in bare-ass POSIX shells, such as `dash`.
Instead, you might do:
```sh
x=2
x=$(( x +1 ))
x=$(( x*x ))
```
## Finding Duplicate Files
```bash
@ -97,3 +109,8 @@ That gives you a random directory to mess about in.
cd $dir
```
### POSIX WARNING
These smart-brackets are a bash feature.
If you try to use `{A..Z}` in dash, it will think of this as a single item.

View File

@ -2,7 +2,6 @@
title: "imagemagick"
tags: [ "Documentation", "Vision" ]
---
[Source](http://lxlinux.com/imagemagick.html)
Convert jpg to png.
@ -41,13 +40,13 @@ convert image.jpg -resize 25% output.jpg
# Trim images to border
This is generally used for transparrent images.
This is generally used for transparent images.
```bash
convert -trim image.png output.png
```
Make the white of an image transparrent.
Make the white of an image transparent.
```bash
convert -transparent white -fuzz 10% input.png output.png
@ -101,7 +100,7 @@ See your installed fonts:
convert -list font
```
Make na image showing day of the week:
Make an image showing day of the week:
```bash
convert -fill blue -font Sauce-Code-Pro-Semibold-Nerd-Font-Complete-Mono -gravity center -pointsize 79 label:$(date +%A) day.png