понедельник, 30 декабря 2024 г.

Nginx + Let's Crypt

Шаг 1. Установка Certbot

# apt-get install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface -y

# apt-get install python3-certbot-nginx -y



Шаг 2. Проверка имени домена

# vim /etc/nginx/suite-available/default

server {
    ...
    server_name rus-notes.ru www.rus-notes.ru;
    ...
}



Шаг 3. Получение SSL-сертификата
# certbot --nginx -d rus-notes.ru -d www.rus-notes.ru

...
Account registered.
Requesting a certificate for rus-notes.ru and www.rus-notes.ru
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/rus-notes.ru/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/rus-notes.ru/privkey.pem
This certificate expires on 2025-03-30.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for rus-notes.ru to /etc/nginx/sites-enabled/default
Successfully deployed certificate for www.rus-notes.ru to /etc/nginx/sites-enabled/default
Congratulations! You have successfully enabled HTTPS on https://rus-notes.ru and https://www.rus-notes.ru
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



Шаг 4. Проверка автоматического обновления сертификата

# certbot renew --dry-run



Шаг 5. Настройка сертификатов в Nginx

После выполнения всех вышеперечисленных действия сертификаты автоматически прописывают в /etc/nginx/suite-availabe/default.

вторник, 10 декабря 2024 г.

TypeScript, Node.js

Возникла необходимость разбираться с Node.js, при чтении книги "TypeScript Быстро" Яков Файн и Антон Моисеев.

Node.js - среда выполнения кода, написанного на JavaScript.


1. Установка NodeJS

1.1. С официального сайта скачиваем и устанавливаем NodeJS https://nodejs.org/en/


1.2 Проверяем версию NodeJS "node -v":

C:\Users\user>node -v

v22.12.0


1.3. Проверяем версию Node Package Manager "npm -v":

C:\Users\user>npm -v

10.9.0


2. Установка nvm-windows

2.1. Устанавливаем nvm-install.exe (https://github.com/coreybutler/nvm-windows);

2.2. Проверяем список установленных версий Node.js "nvm list":

C:\Users\user>nvm list
No installations recognized.


2.3. Перезапускаем cmd или ps;

2.4. Просматриваем версии, доступные для установки "nvm list available":

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    23.3.0    |   22.12.0    |   0.12.18    |   0.11.16    |
|    ...       |    ...       |   ...        |        ...   |


2.5. Для большей совместимости, устанавливаем TLS версию "nvm install 22.12.00":

C:\Users\user>nvm install 22.12.0
Downloading node.js version 22.12.0 (64-bit)...
Extracting node and npm...
Complete
npm v10.9.0 installed successfully.
Installation complete. If you want to use this version, type
nvm use 22.12.0

2.6. Проверяем список установленных версий Node.js "nvm list":

C:\Users\user>nvm list
22.12.0


3. Установка TypeScript (tsc)

3.1. Установка tsc "npm install -g typescript" ("-g" - глобально):

C:\Users\user>npm install -g typescript

added 1 package in 11s
npm notice
npm notice New patch version of npm available! 10.9.0 -> 10.9.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.9.2
npm notice To update run: npm install -g npm@10.9.2
npm notice

3.2. Смотрим версию tsc "tsc -v":

C:\Users\user>tsc -v

Version 5.7.2


4. Пишем программу на TypeScript

4.1. Создаем каталог "demo01" в котором создаём файл main.ts со следующим содержимым:

function getFinalPrice(price: number, discount: number) {
return price - price /discount;
}
console.log(getFinalPrice(100, 10));


4.2. Компилируем main.ts в main.js "tsc main.ts

D:\library\projects\typescript\demo01>tsc main


4.3. Выполняем файл main.js "node main.js":

D:\library\projects\typescript\demo01>node main.js
90


Опции компиляции: при добавлении в main.ts строки "console.log(getFinalPrice(100, "10%"))" файл main.js будет сгенерирован, не смотря на ошибку передачи строкового аргумента "10%" в тип :numeric. Если не обходимо не выполнять компиляцию при ошибке, то необходимо выполнить компиляцию с опцией "--onEmitonError true":

D:\library\projects\typescript\demo01>tsc main.ts --onEmitOnError true

в этом случае, при наличии ошибки в тексе main.ts, файл main.js сформирован не будет.

Компилировать main.ts в main.js версии ECMAScript5:

D:\...> tsc --t ES5 main.ts


5. Создание нового проекта

5.1. В пустом каталоге для нового проекта выполните команду "tsc --init", в результате будет создан файл "tsconfig.json" со значениями компиляции по умолчанию.

Nginx + Let's Crypt

Шаг 1. Установка Certbot # apt-get install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing...