hotels paris

main
Mel 3 years ago
parent 7fbc07353e
commit bd86ddc223

@ -81,6 +81,6 @@
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.39501695365101386,
"scale": 0.3996749161661463,
"close": true
}

@ -29,6 +29,16 @@
},
"command": false,
"title": "Code"
},
"address": {
"type": "address",
"color": "121, 26, 61",
"icon": {
"name": "directions",
"type": "font-awesome"
},
"command": false,
"title": "address"
}
},
"syntaxHighlight": false,

@ -109,14 +109,14 @@
"active": "c1cbd199334b4022",
"lastOpenFiles": [
"Reading list/@Reading master.md",
"Reading list/Comprendre l'islam.md",
"Travels/Ethiopia.md",
"Networks/Configuring UFW.md",
"Networks/Selfhosting.md",
"Networks/Server Alias.md",
"Networks/Server Cloud.md",
"Networks/Server Tools.md",
"Networks/VPS Console Dialogue.md",
"Admin/Templates/Template Travel.md"
"Admin/Templates/Template Place.md",
"Paris/Hotel Grand Amour.md",
"Paris/Hotel Amour.md",
"Paris/[Hotel Grand Amour.md",
"Paris/@Hotels Paris.md",
"Paris/[Hotel Amour.md",
"Paris/Le Pavillion de la Reine.md",
"Paris/[Le Pavillion de la Reine.md",
"Paris/lHotel Particulier.md"
]
}

@ -61,19 +61,17 @@ style: number
#### Address
```
```ad-address
~~~
Horton Country Park
Horton Lane
Epsom KT19 8PL
United Kingdom
~~~
```
 
#### Contacts
Phone:: <a href="tel:+447961232106">+447961232106</a>
Email:: epsompoloclub@hotmail.com

@ -57,12 +57,20 @@ style: number
1. **Pull the software signature key & image**
`echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list`
```ad-command
~~~
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
~~~
```
3. **Install caddy**
`sudo apt update`
`sudo apt install caddy`
```ad-command
~~~
sudo apt update
sudo apt install caddy
~~~
```
Installing caddy will create a default user 'caddy'.
@ -76,12 +84,20 @@ Go to the homepage to see the caddy default page.
PHP needs to be enabled for caddy to work.
`sudo add-apt-repository ppa:ondrej/php`
`sudo apt install php-cli php-fpm php-mysql`
```ad-command
~~~
sudo add-apt-repository ppa:ondrej/php
sudo apt install php-cli php-fpm php-mysql
~~~
```
Check if php is installed correctly:
`php --version`
```ad-command
~~~
php --version
~~~
```
&emsp;
@ -101,12 +117,20 @@ Caddy will fetch a **SSL certificate** for all sub-domains and addresses present
1. Create a default website folder
`sudo mkdir -p /var/www/html`
```ad-command
~~~
sudo mkdir -p /var/www/html
~~~
```
2. Create a default log folder
`sudo mkdir /var/log/caddy`
`sudo chown -R caddy:caddy /var/log/caddy`
```ad-command
~~~
sudo mkdir /var/log/caddy
sudo chown -R caddy:caddy /var/log/caddy
~~~
```
&emsp;
@ -118,18 +142,26 @@ Caddy will fetch a **SSL certificate** for all sub-domains and addresses present
Caddy's configuration file is inder:
`/etc/caddy/Caddyfile`
```ad-path
~~~
/etc/caddy/Caddyfile
~~~
```
Default configuration is:
>(localhost) {
>root * /var/www/html
>encode gzip zstd
>php_fastcgi unix//run/php/php7.4-fpm.sock
>tls (service email) {
>protocols tls1.2 tls1.3
>}
>}
```ad-code
~~~
(localhost) {
root * /var/www/html
encode gzip zstd
php_fastcgi unix//run/php/php7.4-fpm.sock
tls (service email) {
protocols tls1.2 tls1.3
}
}
~~~
```
&emsp;
@ -141,18 +173,28 @@ Default configuration is:
To update php, edit the following file:
`sudo nano /etc/php/7.4/fpm/pool.d/www.conf`
```ad-path
~~~
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
~~~
```
Change all 'www-data' user reference with 'caddy' including:
```
```ad-code
~~~
listen.owner = caddy
listen.group = caddy
~~~
```
Once this is done, restart php:
`sudo systemctl restart php7.4-fpm`
```ad-command
~~~
sudo systemctl restart php7.4-fpm
~~~
```
&emsp;
@ -166,18 +208,26 @@ Once this is done, restart php:
##### Preliminary CORS code snippet
>(cors) {
> @origin{args.0} header Origin {args.0}
> header @origin{args.0} Access-Control-Allow-Origin "{args.0}"
>}
```ad-code
~~~
(cors) {
@origin{args.0} header Origin {args.0}
header @origin{args.0} Access-Control-Allow-Origin "{args.0}"
}
~~~
```
&emsp;
##### CORS for a sub-domain
> import cors (http://subdomain.tld)
> header Access-Control-Allow-Methods "POST, GET, OPTIONS, PUT"
> header Access-Control-Allow-Headers "*"
```ad-code
~~~
import cors (http://subdomain.tld)
header Access-Control-Allow-Methods "POST, GET, OPTIONS, PUT"
header Access-Control-Allow-Headers "*"
~~~
```
&emsp;
@ -189,10 +239,14 @@ Once this is done, restart php:
Configuration requires to add the following in the sub-domain definition:
> handle_path /(suffix)\* {
> root * /(path to suffix)
> file_server
> }
```ad-code
~~~
handle_path /(suffix)* {
root * /(path to suffix)
file_server
}
~~~
```
&emsp;
@ -204,10 +258,14 @@ Configuration requires to add the following in the sub-domain definition:
Configuration of a service attached to the docker network is easy:
> (hostname) {
> encode zstd gzip
> reverse_proxy xxx.yyy.zzz.aaa:port
> }
```ad-code
~~~
(hostname) {
encode zstd gzip
reverse_proxy xxx.yyy.zzz.aaa:port
}
~~~
```
&emsp;
@ -228,30 +286,42 @@ title: Tutorial
1. **Creat hashed passwords**
`caddy hash-password`
```ad-command
~~~
caddy hash-password
~~~
```
2. **Define the array of users and hashed password**
>(basic-auth) {
> basicauth / {
> user hashed-password
> }
>}
```ad-code
~~~
(basic-auth) {
basicauth / {
user hashed-password
}
}
~~~
```
3. **Define the snippet to test whether the cookie is installed**
>(proxy-auth) {
>% if cookie not = some-token-nonsense
> @no-auth {
> not header_regexp mycookie Cookie myid=(regex-to-match-id)
> }
>
> % store current time, page and redirect to auth
route @no-auth {
> header Set-Cookie "myreferer={scheme}://{host}{uri}; Domain=example.com; Path=/; Max-Age=30; HttpOnly; SameSite=Strict; Secure"
> redir https://auth.example.com
> }
>}
```ad-code
~~~
(proxy-auth) {
% if cookie not = some-token-nonsense
@no-auth {
not header_regexp mycookie Cookie myid=(regex-to-match-id)
}
% store current time, page and redirect to auth
route @no-auth {
header Set-Cookie "myreferer={scheme}://{host}{uri}; Domain=example.com; Path=/; Max-Age=30; HttpOnly; SameSite=Strict; Secure"
redir https://auth.example.com
}
}
~~~
```
&emsp;
@ -259,24 +329,28 @@ title: Tutorial
After setting up a new subdomain/page and appropriate DNS records, define it as follows:
>auth.example.com {
route / {
> % require authentication
> import basic-auth
>
> % upon successful auth, set a client token
> header Set-Cookie "myid=some-long-hopefully-random-string; Domain=example.com; Path=/; Max-Age=3600; HttpOnly; SameSite=Strict; Secure"
>
> % delete the referer cookie
>header +Set-Cookie "myreferer=null; Domain=example.com; Path=/; Expires=Thu, 25 Sep 1971 12:00:00 GMT; HttpOnly; SameSite=Strict; Secure"
>
> % redirect back to the original site
> redir {http.request.cookie.myreferer}
}
>
> % fallback
respond "Hi."
```ad-code
~~~
auth.example.com {
route / {
% require authentication
import basic-auth
% upon successful auth, set a client token
header Set-Cookie "myid=some-long-hopefully-random-string; Domain=example.com; Path=/; Max-Age=3600; HttpOnly; SameSite=Strict; Secure"
% delete the referer cookie
header +Set-Cookie "myreferer=null; Domain=example.com; Path=/; Expires=Thu, 25 Sep 1971 12:00:00 GMT; HttpOnly; SameSite=Strict; Secure"
% redirect back to the original site
redir {http.request.cookie.myreferer}
}
% fallback
respond "Hi."
}
~~~
```
&emsp;
@ -284,7 +358,11 @@ After setting up a new subdomain/page and appropriate DNS records, define it as
Simply add the following at the top of all declarations for sub-domain definitions:
> import proxy-auth
```ad-code
~~~
import proxy-auth
~~~
```
&emsp;
@ -300,7 +378,11 @@ Simply add the following at the top of all declarations for sub-domain definitio
Look for a folder with the following sequence:
`/.local/share/caddy`
```ad-path
~~~
/.local/share/caddy
~~~
```
&emsp;
@ -316,7 +398,11 @@ A full repository of commands can be found [here](https://caddyserver.com/docs/)
#### Start/Stop/Restart
`sudo systemctl start/stop/restart caddy`
```ad-command
~~~
sudo systemctl start/stop/restart caddy
~~~
```
&emsp;
@ -324,7 +410,11 @@ A full repository of commands can be found [here](https://caddyserver.com/docs/)
Once config amended just run:
`sudo systemctl reload caddy`
```ad-command
~~~
sudo systemctl reload caddy
~~~
```
&emsp;
&emsp;

@ -57,24 +57,40 @@ style: number
1. **Prerequisites**
`sudo apt update`
`sudo apt install curl apt-transport-https ca-certificates software-properties-common`
```ad-command
~~~
sudo apt update
sudo apt install curl apt-transport-https ca-certificates software-properties-common
~~~
```
If the packages are already installed and to the latest version, the OS will skip.
2. **Pull the software signature key & image**
`curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key ad`
`sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" `
```ad-command
~~~
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key ad
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
~~~
```
3. **Install docker**
`sudo apt update`
`sudo apt install docker-ce docker-ce-cli containerd.io`
```ad-command
~~~
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
~~~
```
4. **Test install**
`sudo systemctl status docker`
```ad-command
~~~
sudo systemctl status docker
~~~
```
&emsp;
@ -82,8 +98,12 @@ If the packages are already installed and to the latest version, the OS will ski
Users with sudo rights need to be added to the 'docker' group for being able to instruct docker:
`sudo gpasswd -a (username) docker`
`sudo newgrp docker`
```ad-command
~~~
sudo gpasswd -a (username) docker
sudo newgrp docker
~~~
```
&emsp;
@ -91,17 +111,27 @@ Users with sudo rights need to be added to the 'docker' group for being able to
Docker-compose is a script generatir enabling leaner execution and update of each container. The following commands install the wizard.
```
```ad-command
~~~
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
~~~
```
File permissions need to be changed for docker-compose to be executable:
`sudo chmod +x /usr/local/bin/docker-compose`
```ad-command
~~~
sudo chmod +x /usr/local/bin/docker-compose
~~~
```
Installation can be checked as follows:
`sudo dockercompose --version`
```ad-command
~~~
sudo dockercompose --version
~~~
```
&emsp;
@ -117,8 +147,10 @@ Installation can be checked as follows:
In order for docker to work, each container needs an internal IP address. This is defined by an internal docker network as follows:
```
```ad-command
~~~
sudo docker network create --driver=bridge --subnet=xxx.yyy.zzz.0/24 --gateway=xxx.yyy.zzz.1 dockernet
~~~
```
x, y, z to be defined by the user.
@ -133,7 +165,11 @@ Containers are created through docker-compose. Tutorial exist for each applicati
2. A yaml file for docker-compose must be created in the folder
3. The docker-compose command for initialisation must be run from the folder:
`sudo docker-compose up -d`
```ad-command
~~~
sudo docker-compose up -d
~~~
```
&emsp;
@ -142,13 +178,21 @@ Containers are created through docker-compose. Tutorial exist for each applicati
Maintaining containers with docker is arduous and easier to do with docker-compose.
Easiest is to create aliases in the .bashrc of home directory by adding:
>alias dc-up='sudo docker-compose --compatibility up -d'
```ad-code
~~~
alias dc-up='sudo docker-compose --compatibility up -d'
alias dc-update='sudo docker-compose pull && sudo docker-compose --compatibility up -d'
alias dc-update-all='for d in ./*/ ; do (cd "$d" && dc-update); done'
~~~
```
To the following file:
`~/.bashrc`
```ad-path
~~~
~/.bashrc
~~~
```
The command needs to be run periodically.
@ -158,7 +202,11 @@ The command needs to be run periodically.
For updating containers, just amend the docker-compose file and run the following command to preserve the mounted data:
`docker-compose up -d`
```ad-command
~~~
docker-compose up -d
~~~
```
From within the container folder.
@ -170,19 +218,35 @@ Docker does not have a standard way to update environment variables, and require
1. **stop docker**
`sudo systemctl stop docker`
```ad-command
~~~
sudo systemctl stop docker
~~~
```
2. **Edit the json config file**
Location: `/var/lib/docker/containers/(container id)/config.v2.json`
```ad-path
~~~
/var/lib/docker/containers/(container id)/config.v2.json
~~~
```
Within the 'Env' declaration, add the requested data field:
> "DATA_FIELD=data_value"
```ad-code
~~~
"DATA_FIELD=data_value"
~~~
```
3. **Restart docker**
`sudo systemctl start docker`
```ad-command
~~~
sudo systemctl start docker
~~~
```
&emsp;
@ -196,13 +260,21 @@ Within the 'Env' declaration, add the requested data field:
#### List containers
`docker container ls`
```ad-command
~~~
docker container ls
~~~
```
&emsp;
#### Execute commands in container
`docker exec -it -u (username) (command)`
```ad-command
~~~
docker exec -it -u (username) (command)
~~~
```
&emsp;
&emsp;

@ -147,11 +147,19 @@ After making the change, monit needs to be restarted:
Monit has a number of pre-loaded configurations that can be accessed here:
`ls -alh /etc/monit/conf-available`
```ad-command
~~~
ls -alh /etc/monit/conf-available
~~~
```
To enable some of the pre-loaded confs, command below:
`sudo ln -s /etc/monit/conf-available/(process) /etc/monit/conf-enabled/`
```ad-command
~~~
sudo ln -s /etc/monit/conf-available/(process) /etc/monit/conf-enabled/
~~~
```
&emsp;
@ -159,18 +167,29 @@ To enable some of the pre-loaded confs, command below:
Create a conf document in the following folder:
`sudo touch /etc/monit/conf-available/(processname)`
```ad-command
~~~
sudo touch /etc/monit/conf-available/(processname)
~~~
```
Edit the document with at least the below declarations:
>check process (processname)
>matching "(processname)"
>start program = "(path to command)"
>stop program = "(path to command)"
```ad-code
~~~
check process (processname) matching "(processname)"
start program = "(path to command)"
stop program = "(path to command)"
~~~
```
Once done, enable the config:
`sudo ln -s /etc/monit/conf-available/(process) /etc/monit/conf-enabled/`
```ad-command
~~~
sudo ln -s /etc/monit/conf-available/(process) /etc/monit/conf-enabled/
~~~
```
&emsp;
@ -180,33 +199,51 @@ Docker containers can be set up as programs with the use of a script.
1. Create a script for the docker container
```
```ad-command
~~~
sudo mkdir /etc/monit/scripts/
sudo touch/vi /etc/monit/scripts/check_container_(container name).sh
sudo touch /etc/monit/scripts/check_container_(container name).sh
sudo chmod 711 /etc/monit/scripts/check_container_(container name).sh
~~~
```
2. Edit the script
>#! /bin/bash
>docker top "(container name)"
>exit $?
```ad-code
~~~
#! /bin/bash
docker top "(container name)"
exit $?
~~~
```
3. Create the configuration file
`sudo touch/vi /etc/monit/conf-available/(container name)`
```ad-command
~~~
sudo touch/vi /etc/monit/conf-available/(container name)
~~~
```
4. Edit the config file
>CHECK PROGRAM (container name) WITH PATH /etc/monit/scripts/check\_container_(container name).sh
```ad-code
~~~
CHECK PROGRAM (container name) WITH PATH /etc/monit/scripts/check\_container_(container name).sh
START PROGRAM = "/usr/bin/docker start (container name)"
STOP PROGRAM = "/usr/bin/docker stop (container name)"
IF status != 0 FOR 3 CYCLES THEN RESTART
IF 2 RESTARTS WITHIN 5 CYCLES THEN UNMONITOR
~~~
```
5. Enable the config
`sudo ln -s /etc/monit/conf-available/(container name) /etc/monit/conf-enabled/`
```ad-command
~~~
sudo ln -s /etc/monit/conf-available/(container name) /etc/monit/conf-enabled/
~~~
```
&emsp;
@ -214,11 +251,19 @@ sudo chmod 711 /etc/monit/scripts/check_container_(container name).sh
Once configuration is updated, monit provides a tool to check the script:
`sudo monit -t`
```ad-command
~~~
sudo monit -t
~~~
```
The program needs to be restarted:
`sudo monit reload`
```ad-command
~~~
sudo monit reload
~~~
```
&emsp;
@ -232,8 +277,11 @@ The program needs to be restarted:
#### Print monit activity
`sudo monit summary`
```ad-command
~~~
sudo monit summary
~~~
```
&emsp;
&emsp;

@ -55,7 +55,11 @@ Installation is simple and opens a dialogue box. Steps are described below:
1. **Install Postfix**
`sudo apt-get install -y postfix postfix-pgsql -y`
```ad-command
~~~
sudo apt-get install -y postfix postfix-pgsql -y
~~~
```
2. **Configuration screen**
@ -86,9 +90,10 @@ The basic configuration is run in detail below.
#### Main.cf
```ad-info
title: File path
```ad-path
~~~
/etc/postfix/main.cf
~~~
```
Edit the file whilst editing the following values:
@ -96,113 +101,128 @@ Edit the file whilst editing the following values:
2. mydomain (associated domain)
3. my origin (associated domain)
> ###### POSTFIX config file, adapted for SimpleLogin
```ad-code
title: main.cf
~~~
###### POSTFIX config file, adapted for SimpleLogin
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
>
>###### appending .domain is the MUA's job.
###### appending .domain is the MUA's job.
append_dot_mydomain = no
>
>###### Uncomment the next line to generate "delayed mail" warnings
>######## delay_warning_time = 4h
>
>readme_directory = no
>
>###### See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on fresh installs.
###### Uncomment the next line to generate "delayed mail" warnings
######## delay_warning_time = 4h
readme_directory = no
###### See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on fresh installs.
compatibility_level = 2
>
>###### TLS parameters
###### TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = may
smtpd_tls_security_level = may
>
>###### See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
>###### information on enabling SSL in the smtp client.
>
>alias_maps = hash:/etc/aliases
###### See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
###### information on enabling SSL in the smtp client.
alias_maps = hash:/etc/aliases
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 240.0.0.0/24
>
>###### Set your domain here
###### Set your domain here
mydestination =
myhostname = app.mydomain.com
mydomain = mydomain.com
myorigin = mydomain.com
>
>relay_domains = pgsql:/etc/postfix/pgsql-relay-domains.cf
relay_domains = pgsql:/etc/postfix/pgsql-relay-domains.cf
transport_maps = pgsql:/etc/postfix/pgsql-transport-maps.cf
>
>###### HELO restrictions
###### HELO restrictions
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions =
> permit_mynetworks,
> reject_non_fqdn_helo_hostname,
> reject_invalid_helo_hostname,
> permit
>
>###### Sender restrictions:
permit_mynetworks,
reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
permit
###### Sender restrictions:
smtpd_sender_restrictions =
> permit_mynetworks,
> reject_non_fqdn_sender,
> reject_unknown_sender_domain,
> permit
>
>###### Recipient restrictions:
smtpd_recipient_restrictions =
> reject_unauth_pipelining,
> reject_non_fqdn_recipient,
> reject_unknown_recipient_domain,
> permit_mynetworks,
> reject_unauth_destination,
> reject_rbl_client zen.spamhaus.org,
> reject_rbl_client bl.spamcop.net,
> permit
permit_mynetworks,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit
###### Recipient restrictions:
smtpd_recipient_restrictions =
reject_unauth_pipelining,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
permit_mynetworks,
reject_unauth_destination,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
permit
~~~
```
&emsp;
#### relay domains
```ad-info
title: File path
```ad-path
~~~
/etc/postfix/pgsql-relay-domains.cf
~~~
```
Below is the default config for the file (replace mydomain.com with relevant value):
>###### postgres config
```ad-code
title: master.cf
~~~
###### postgres config
hosts = localhost
user = myuser
password = mypassword
dbname = simplelogin
>
query = SELECT domain FROM custom_domain WHERE domain='%s' AND verified=true
> UNION SELECT '%s' WHERE '%s' = 'mydomain.com' LIMIT 1;
query = SELECT domain FROM custom_domain WHERE domain='%s' AND verified=true
UNION SELECT '%s' WHERE '%s' = 'mydomain.com' LIMIT 1;
~~~
```
&emsp;
#### transport maps
```ad-info
title: File path
```ad-path
~~~
/etc/postfix/pgsql-transport-maps.cf
~~~
```
Below is the standard declaration of the file (replace mydomain.com with the relevant value):
>###### postgres config
```ad-code
title: pgsql-transport-maps.cf
~~~
###### postgres config
hosts = localhost
user = myuser
password = mypassword
dbname = simplelogin
>
>###### forward to smtp:127.0.0.1:20381 for custom domain AND email domain
###### forward to smtp:127.0.0.1:20381 for custom domain AND email domain
query = SELECT 'smtp:127.0.0.1:20381' FROM custom_domain WHERE domain = '%s' AND verified=true
> UNION SELECT 'smtp:127.0.0.1:20381' WHERE '%s' = 'mydomain.com' LIMIT 1;
UNION SELECT 'smtp:127.0.0.1:20381' WHERE '%s' = 'mydomain.com' LIMIT 1;
~~~
```
&emsp;
@ -210,7 +230,11 @@ query = SELECT 'smtp:127.0.0.1:20381' FROM custom_domain WHERE domain = '%s' AND
##### Restart the service
`sudo systemctl restart postfix`
```ad-command
~~~
sudo systemctl restart postfix
~~~
```
&emsp;
@ -235,7 +259,11 @@ title: Documentation
Ports (25, 465, 587) need to be opened by the firewall:
`sudo ufw allow (port)/tcp`
```ad-command
~~~
sudo ufw allow (port)/tcp
~~~
```
&emsp;
@ -247,9 +275,10 @@ Definition of permitted networks to restrict access (in [[Configuring Postfix#Ma
##### Submission/SMTPD
```ad-info
title: File path
```ad-path
~~~
/etc/postfix/master.cf
~~~
```
Options are coded in the file by default. Uncheck necessary directives.
@ -270,14 +299,18 @@ Postfix SSL certs need to match that of the server (in [[Configuring Postfix#Mai
##### Add SASL users
```ad-bug
```ad-command
title: add a user
`sudo saslpasswd2 -c -u (mydomain.tld) (username)`
~~~
sudo saslpasswd2 -c -u (mydomain.tld) (username)
~~~
```
```ad-bug
```ad-command
title: check number of users
`sudo sasldblistusers2`
~~~
sudo sasldblistusers2
~~~
```
&emsp;
@ -301,13 +334,21 @@ Allow for connecting to an external SMTP - not tested.
Unfortunately there is no built-in functionality to monitor specifically outgoing emails. The following command can however be used and grans relevant info from `mail.log`:
`sudo grep "status=sent" /var/log/mail.log | egrep -ve 'postfix/(cleanup|pickup|master|qmgr|smtpd|local|pipe)'`
```ad-command
~~~
sudo grep "status=sent" /var/log/mail.log | egrep -ve 'postfix/(cleanup|pickup|master|qmgr|smtpd|local|pipe)'
~~~
```
&emsp;
#### Monitor SMTP connections
`sudo tail -f /var/log/mail.log`
```ad-command
~~~
sudo tail -f /var/log/mail.log
~~~
```
&emsp;
&emsp;

@ -59,17 +59,29 @@ UFW should be installed by default in Ubuntu servers. If not, see below.
#### Installation of UFW
`sudo apt install ufw`
```ad-command
~~~
sudo apt install ufw
~~~
```
&emsp;
#### Activation of UFW
`sudo ufw status`
```ad-command
~~~
sudo ufw status
~~~
```
If disabled:
`sudo ufw enable`
```ad-command
~~~
sudo ufw enable
~~~
```
&emsp;
@ -83,7 +95,11 @@ If disabled:
#### UFW rules status
'sudo ufw status'
```ad-command
~~~
sudo ufw status
~~~
```
Commands can be appended:
- `verbose`: details incoming/outgoing rules
@ -95,7 +111,11 @@ Commands can be appended:
##### Allow / Deny
`sudo ufw allow/deny`
```ad-command
~~~
sudo ufw allow/deny
~~~
```
Then:
@ -112,7 +132,11 @@ Then:
Certain rules like IP denial need to be put on top of the rule stack as UFW reads rules in order one after another. Insert the following in the command to force insertion:
`insert 1 (or any place in the pecking order)`
```ad-command
~~~
insert 1 (or any place in the pecking order)
~~~
```
&emsp;
@ -128,7 +152,5 @@ Finer rules can be defined with the following syntax.
**port** | port (port or any)
**outgoing traffic** | out
&emsp;
&emsp;

@ -81,7 +81,7 @@ Simple page with a few words and no links to sub-domains.
#### Email Alias Characteristics
```ad-bug
```ad-address
title: sub-domain address
https://emailalias.mfxm.fr
```
@ -111,7 +111,7 @@ title: Email whitelisting service
#### Cloud Characteristics
```ad-bug
```ad-address
title: sub-domain address
https://cloud.mfxm.fr
```
@ -137,7 +137,9 @@ Managed through the WP Admin panel.
The following helps creating a random 5-characters string:
`dice: 5d[[URL characters]]`
```ad-code
dice: 5d[[URL characters]]
```
&emsp;
@ -149,7 +151,7 @@ The following helps creating a random 5-characters string:
&emsp;
```ad-bug
```ad-address
title: sub-domain address
https://pw-manager.mfxm.fr
```
@ -166,7 +168,7 @@ Server details to be found [[Server Tools#Password manager|here]]
&emsp;
```ad-bug
```ad-address
title: sub-domain address
https://st-notes.mfxm.fr
@ -187,14 +189,14 @@ Server details to be found [[Server Tools#Personal notes|here]]
&emsp;
```ad-bug
```ad-address
title: sub-domain address
https://git.mfxm.fr
```
Server details to be found [[Server Tools#Git repository|here]]
```ad-info
```ad-address
title: link to repo
https://git.mfxm.fr/melchiorbv/Obsidian.git
```

@ -68,9 +68,10 @@ style: number
1. [[@Restaurants Paris|Restaurants in Paris]]
2. [[@Bars Paris|Bars in Paris]]
3. [[@Sport Paris|Sport in Paris]]
4. [[@Expositions, concerts et activités|Expositions, concerts et activités]]
5. [[@Media France|Media en France]]
3. [[@Hotels Paris|Hotels in Paris]]
4. [[@Sport Paris|Sport in Paris]]
5. [[@Expositions, concerts et activités|Expositions, concerts et activités]]
6. [[@Media France|Media en France]]
&emsp;
@ -78,13 +79,16 @@ style: number
&emsp;
### Tag Navigation
### High Level tasks
&emsp;
```dataview
Table without id tags as "Tags" From "Paris"
Flatten file.tags as tags
Group by tags
```tasks
not done
path includes Paris
sort by due
hide backlink
hide task count
```
&emsp;
@ -93,16 +97,13 @@ style: number
&emsp;
### High Level tasks
### Tag Navigation
&emsp;
```tasks
not done
path includes Paris
sort by due
hide backlink
hide task count
```dataview
Table without id tags as "Tags" From "Paris"
Flatten file.tags as tags
Group by tags
```
&emsp;

@ -58,7 +58,7 @@ style: number
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Bar")
where Place.Location = "Marais"
where contains(Place.Location, "Marais")
```
&emsp;
@ -69,7 +69,7 @@ where Place.Location = "Marais"
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Bar")
where Place.Location = "Chatelet"
where contains(Place.Location, "Chatelet")
```
&emsp;
@ -80,7 +80,7 @@ where Place.Location = "Chatelet"
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Bar")
where Place.Location = "GareduNord"
where contains(Place.Location, "GareduNord")
```
&emsp;
@ -91,7 +91,7 @@ where Place.Location = "GareduNord"
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Bar")
where Place.Location = "Pigalle"
where contains(Place.Location, Pigalle")
```
&emsp;
@ -102,7 +102,7 @@ where Place.Location = "Pigalle"
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Bar")
where Place.Location = "StGermain"
where contains(Place.Location, "StGermain")
```
&emsp;

@ -0,0 +1,158 @@
---
Alias: ["Hotels Paris", "Hotels in Paris"]
Tag: ["Paris", "Hotel"]
Date: 2021-10-04
DocType: Redommendation
Hierarchy: Root2
TimeStamp:
CollapseMetaTable: Yes
---
Parent:: [[@@Paris|Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-HotelParisSave
&emsp;
# Hotels in Paris
&emsp;
```ad-abstract
title: Summary
collapse: open
Note summarising hotels in Paris by neighbourhood.
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Raw list
[[Hotel Amour]]](https://www.hotelamourparis.fr/en/)
[[Hotel Grand Amour]]](https://www.hotelamourparis.fr/en/hotels/grand-amour-hotel/)
### Navigation by location
&emsp;
#### Marais
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "Marais")
```
&emsp;
#### Opéra
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "Opera")
```
&emsp;
#### Gare du Nord
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "GareduNord")
```
&emsp;
#### Pigalle
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "Pigalle")
```
&emsp;
#### Saint Germain-des-Prés
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "StGermain")
```
&emsp;
#### Montmartre
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "Montmartre")
```
&emsp;
#### Nation
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "Nation")
```
&emsp;
#### Yvelines
```dataview
Table without id file.link as "Place", Place.Style as "Theme", Phone, Email, Website from "Paris"
where DocType = "Place"
where contains(Place.Type, "Hotel")
where contains(Place.Location, "Yvelines")
```
&emsp;
---
&emsp;
### Recommendation list
[[Recommendation list (Paris)|here]]
&emsp;
&emsp;

@ -0,0 +1,95 @@
---
Tag: [""]
Date: 2021-10-06
DocType: "Place"
Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: Hotel
SubType: Atmosphere
Style: Hipster
Location: Pigalle
Country: France
Status: Occasional
---
Parent:: [[@Hotels Paris|Hotels in Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-HotelAmourSave
&emsp;
# Hotel Amour
&emsp;
```ad-abstract
title: Summary
collapse: open
Trendy hipster hotel in the East of Paris
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Contact
&emsp;
#### Address
```
8 Rue de Navarin
75009 Paris
France
```
&emsp;
#### Contacts
Phone:: <a href="tel:+33148783180">01 48 78 31 80</a>
Email:: amour@hotelamourparis.fr
Website:: https://amour.hotelamourparis.fr/
&emsp;
---
&emsp;
### Notes
&emsp;
Sister hotel to [[Hotel Grand Amour]]
&emsp;
&emsp;

@ -0,0 +1,95 @@
---
Tag: ["Scenic", "Parisian"]
Date: 2021-10-06
DocType: "Place"
Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: Hotel
SubType: Traditional
Style: Parisian
Location: Opera
Country: France
Status: Prospect
---
Parent:: [[@Hotels Paris|Hotels in Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-HotelChopinSave
&emsp;
# Hotel Chopin
&emsp;
```ad-abstract
title: Summary
collapse: open
Adorable small hotel behind Opera
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Contact
&emsp;
#### Address
```
46 passage Jouffroy
75009 Paris
France
```
&emsp;
#### Contacts
Phone:: <a href="tel:+33147705810">01 47 70 58 10</a>
Email:: info@hotelchopin.fr
Website:: https://hotelchopin-paris-opera.com/en/
&emsp;
---
&emsp;
### Notes
&emsp;
Loret ipsum
&emsp;
&emsp;

@ -0,0 +1,92 @@
---
Tag: [""]
Date: 2021-10-06
DocType: "Place"
Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: Hotel
SubType: Atmosphere
Style: Trendy
Location: GareduNord
Country: France
Status: Occasional
---
Parent:: [[@Hotels Paris|Hotels in Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-HotelGrandAmourSave
&emsp;
# Hotel Grand Amour
&emsp;
```ad-abstract
title: Summary
collapse: open
Trendy hipster hotel by the Gare de l'Est
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Contact
&emsp;
```ad-address
~~~
18 rue de la Fidélité
75010 Paris
France
~~~
```
&emsp;
Phone:: <a href="tel:+33144160330">01 44 16 03 30</a>
Email:: grandamour@hotelamourparis.fr
Website:: https://grandamour.hotelamourparis.fr/
&emsp;
---
&emsp;
### Notes
&emsp;
Sister hotel to [[Hotel Amour]]
&emsp;
&emsp;

@ -0,0 +1,95 @@
---
Tag: [""]
Date: 2021-10-06
DocType: "Place"
Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: Hotel
SubType: Historic
Style: "Place des Vosges"
Location: Marais
Country: France
Status: Prospect
---
Parent:: [[@Hotels Paris|Hotels in Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-LePavilliondelaReineSave
&emsp;
# Le Pavillion de la Reine
&emsp;
```ad-abstract
title: Summary
collapse: open
Beautiful hotel on the Place des Vosges
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Contact
&emsp;
#### Address
```
28 place des Vosges
75003 Paris
France
```
&emsp;
#### Contacts
Phone:: <a href="tel:+33140291919">01 40 29 19 19</a>
Email:: contact@pdlr.fr
Website:: http://www.pavillon-de-la-reine.com/
&emsp;
---
&emsp;
### Notes
&emsp;
Loret ipsum
&emsp;
&emsp;

@ -7,7 +7,7 @@ Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: Bar
Type: ["Hotel", "Bar"]
SubType: Rooftop
Style: Trendy
Location: Nation
@ -16,7 +16,7 @@ Place:
---
Parent:: [[@Bars Paris|Bars in Paris]]
Parent:: [[@Hotels Paris|Hotels in Paris]], [[@Bars Paris|Bars in Paris]]
---

@ -16,7 +16,7 @@ Place:
---
Parent:: [[@Restaurants Paris|Restaurants in Paris]]
Parent:: [[@Restaurants Paris|Restaurants in Paris]], [[@Hotels Paris|Hotelss in Paris]]
---
@ -71,11 +71,11 @@ France
#### Contacts
Phone:: <a href="tel:+33142722000">01 42 72 20 00</a>
Email:: restaurant@sinnerparis.com
Website:: https://www.sinnerparis.com
Website:: https://www.sinnerparis.com
&emsp;

@ -0,0 +1,95 @@
---
Tag: ["Renovated", "Architecture"]
Date: 2021-10-06
DocType: "Place"
Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: Hotel
SubType: Rooftop
Style: Modern
Location: Montmartre
Country: France
Status: Prospect
---
Parent:: [[@Hotels Paris|Hotels in Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-TerrassHotelSave
&emsp;
# Terrass'Hotel
&emsp;
```ad-abstract
title: Summary
collapse: open
Note Description
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Contact
&emsp;
#### Address
```
12-14 Rue Joseph de Maistre
75018 Paris
France
```
&emsp;
#### Contacts
Phone:: <a href="tel:+33146067285">01 46 06 72 85</a>
Email:: reservation@terrass-hotel.com
Website:: https://www.terrass-hotel.com/en
&emsp;
---
&emsp;
### Notes
&emsp;
Loret ipsum
&emsp;
&emsp;

@ -0,0 +1,95 @@
---
Tag: [""]
Date: 2021-10-06
DocType: "Place"
Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: Hotel
SubType: Modern
Style: Architecture
Location: Marais
Country: France
Status: Prospective
---
Parent:: [[@Hotels Paris|Hotels in Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-VillaBeaumarchaisSave
&emsp;
# Villa Beaumarchais
&emsp;
```ad-abstract
title: Summary
collapse: open
Beautiful modern hotel at the fringe of the Marais.
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Contact
&emsp;
#### Address
```
5 Rue Des Arquebusiers
75003 Paris
France
```
&emsp;
#### Contacts
Phone:: <a href="tel:+33140291400">01 40 29 14 00</a>
Email:: beaumarchais@machefert.com
Website:: https://www.villa-beaumarchais.com/
&emsp;
---
&emsp;
### Notes
&emsp;
Loret ipsum
&emsp;
&emsp;

@ -0,0 +1,97 @@
---
Tag: [""]
Date: 2021-10-06
DocType: "Place"
Hierarchy: "NonRoot"
TimeStamp:
location:
Place:
Type: ["Hotel", "Bar"]
SubType: Parisian
Style: "Hotel Particulier"
Location: Montmartre
Country: France
Status: Prospect
---
Parent:: [[@Hotels Paris|Hotels in Paris]]
---
&emsp;
```button
name Save
type command
action Save current file
id Save
```
^button-lHotelParticulierSave
&emsp;
# lHotel Particulier
&emsp;
```ad-abstract
title: Summary
collapse: open
Beautiful hotel particulier on the slopes of Montmartre.
```
&emsp;
```toc
style: number
```
&emsp;
---
&emsp;
### Contact
&emsp;
#### Address
```
23, AVENUE JUNOT
PAVILLON D
75018 PARIS
France
```
&emsp;
#### Contacts
Phone:: <a href="tel:+33153418140">01 53 41 81 40</a>
Email:: RECEPTION@HOTELPARTICULIER.COM
Website:: https://hotelparticulier.com/
&emsp;
---
&emsp;
### Notes
&emsp;
Loret ipsum
&emsp;
&emsp;
Loading…
Cancel
Save