Steps to deploy a Node.js app to Ubuntu Server using PM2, NGINX as a reverse proxy and an SSL from LetsEncrypt
# creating new user
adduser lukas
| # Back up db | |
| # 0 0 * * * => everyday at 00:00 | |
| mysqldump -u user_name -p'your_password' -h127.0.0.1 db_name | gzip > /home/dreamtechnology/logistics/backups/backup_$(date +"\%Y.\%m.\%d.\%S.\%N").sql.gz | |
| # Curl | |
| # */5 * * * * => every 5 minute | |
| curl -m 120 -s http://api.xxx.com |
| -- Aktifkan event scheduler | |
| SET GLOBAL event_scheduler := 1; | |
| SELECT @@event_scheduler; | |
| -- Menampilkan events yang ada pada db | |
| SHOW EVENTS; | |
| -- Contoh | |
| -- nama event: event_payments | |
| CREATE EVENT `event_payments` ON SCHEDULE EVERY 1 MINUTE |
| -- Cara penulisan triggers | |
| DELIMITER $$ | |
| CREATE TRIGGER nama_trigger | |
| {BEFORE | AFTER} {INSERT | UPDATE| DELETE } | |
| ON nama_table | |
| FOR EACH ROW | |
| BEGIN | |
| KODE SQL | |
| END$$ | |
| DELIMITER ; |
| -- Install: https://www.2ndquadrant.com/en/blog/pginstaller-install-postgresql/ | |
| -- Env postgresn in windows: https://sqlbackupandftp.com/blog/setting-windows-path-for-postgres-tools | |
| -- Nyalain service | |
| -- Run (Win + R) -> services.msc | |
| -- Cari PostgreSQL -> klik kanan -> start | |
| -- Menjalankan perintah SQL di CMD | |
| -- cd C:\Program Files\2ndQuadrant\PostgreSQL\12\bin | |
| -- psql.exe -U postgres |
| Error: Ngirim email menggunakan nodemailer & smtp google, di pc local lancar di production gagal. | |
| Error Message: Error: connect ECONNREFUSED,code: ESOCKET, port: 45 | |
| Sebelumnya: | |
| nodemailer.createTransport({ | |
| service: 'Gmail', | |
| auth: { | |
| user: 'xx', | |
| pass: 'xx', |
| // Full docs: https://joi.dev/api/?v=17.4.0 | |
| const Joi = require('joi'); | |
| try { | |
| const schema = Joi.object().keys({ | |
| name: Joi.string().min(2).required().messages({ | |
| 'string.base': `"username" should be a type of 'text'`, | |
| 'string.empty': `"username" cannot be an empty field`, | |
| 'string.min': `"username" should have a minimum length of {#limit}`, | |
| 'any.required': `"username" is a required field`, |
| // string | |
| let nama: string = 'Nauval'; | |
| nama = 'Shidqi Ganteng'; | |
| // number | |
| let umur: number = 12; | |
| umur = 6; | |
| let angka = <number>umur; // cara lain deklarasi variable Type Assertion | |
| console.log('angka', angka); |
Untuk membuat alias Bash caranya cukup sederhana. Pertama, buka file ~/.bashrc lalu pastika baris berikut tidak dikomentari:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Baris tersebut bermaksud untuk membaca file bernama .bash_aliases. Jika file ini ada, maka kita dapat mulai menulis alias yang diinginkan didalamnya. Jika belum ada, maka buat sebuah file bernama ~/.bash_aliases lalu tambahkan baris berikut sebagai alias pertama:
| import React, {Component, Fragment} from 'react'; | |
| import { | |
| StyleSheet, | |
| SafeAreaView, | |
| View, | |
| Dimensions, | |
| ScrollView, | |
| TouchableOpacity, | |
| ActivityIndicator, | |
| } from 'react-native'; |