# apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Przykładowe ściągnięcie obrazu getting-started, uruchomienie konternera i wrzucenie obrazu do docker huba:
# docker run --name repo alpine/git clone https://github.com/docker/getting-started.git # docker cp repo:/git/getting-started . # cd getting-started # docker run -d -p 80:80 --name docker-tutorial docker101tutorial # docker tag docker101tutorial jornathanx/docker101tutorial # docker push jornathanx/docker101tutorial
# redis-cli
# redis-cli FLUSHALL - czyści bazę redis
> EXIT - wyjście z programu
> help $string - lub: @hash, @list, @set
> help $sorted_set
Zbiór zapewnia stały czas przetwarzania elementów. Czytaj dalej Redis – Set (zbiór)
127.0.0.1:6379> help @list
HSET, HGET, HGETALL, HEXISTS, HDEL
> HSET profil.1 name Frank - kropka traktowana jest jak każdy inny znak > HSET profil.1 login johnny
Czytaj dalej Redis – Hash – tablice asocjacyjne – obiekty płaskie (JS)
# redis-cli
> KEYS * - wszystkie klucze (musi być argument) > EXIT - wyjście z programu
Główny plik konfiguracyjny
# nano /etc/redis/redis.conf bind 127.0.0.1 - tylko localhost # By default, if no "bind" configuration directive is specified, Redis listens # for connections from all the network interfaces available on the server. # It is possible to listen to just one or multiple selected interfaces using # the "bind" configuration directive, followed by one or more IP addresses.
# apt install redis-server
Podczas aktualizacji pojawia się błąd:
Błąd:4 https://packages.sury.org/php stretch InRelease Następujące podpisy były błędne: EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
Instalacja modułu
Odpytanie o nagłówki (-I headers only)
# curl -I https://i.imgur.com/z4d4kWk.jpg HTTP/1.1 200 OK ... Accept-Ranges: bytes Content-Length: 146515
https://curl.se/docs/manual.html – przykłady
https://curl.se/docs/manpage.html – manual
Nagrody
brave://rewards
HSTS
chrome://net-internals/#hsts
Komunikaty przenoszone między wywołaniami przez req.session.flash – dostępne w widokach poprzez res.local.flash
Obsługa sesji
const VALID_EMAIL_REGEX = new RegExp('^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$')
if( VALID_EMAIL_REGEX.test(email) ) { ... }
Hasła robocze – .credentials.development.js
exports.credentials = {
cookieSecret : "9to mmóje hasło developerskie"
}
Sekcja pozwala wstrzykiwać kod do layoutu: arkusze CSS w <head> lub skrypty JS przed </body>. Nie jest wbudowana w silnik handlebars – wprowadzamy ją jako helper w konfiguracji engine.
Zamiast tworzyć odrębną metodę obsługi eksportu można przełączać kontekst za pomocą rozszerzenia .csv
Czytaj dalej CSV – CsvView Plugin – 3.x – przełączanie klasy
Rodzaje: Basic, Digest, Bearer (OAuth 2.0), HOBA (HTTP Origin-Bound Authentication), Mutual, AWS4-HMAC-SHA256
Inicjalizacja silnika szablonów
Obsługa req.body
Przydatne metody
Usuwa domyślny nagłówek http o serwerze
app.disable('x-powered-by')
Usunięcie z nagłówków HTTP nazwy serwera Apache 2
/etc/apache2/apache2.conf
ServerSignature Off ServerTokens Prod
Usuwanie slash’y, query string, wszystkie małe litery
const path = req.url.replace(/\/?(?:\?.*)?$/, '').toLowerCase()
integrity – atrybut kontrolek script i link – skrót zawartości pliki (sha256, sha384, sha512) kodowany w base64
<script src="https://example.com/myscript.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous"></script>
Wyliczenie skrótu dla zawartości pliku myscript.js
# cat myscript.js | openssl dgst -sha384 -binary | openssl base64 -A oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC