Tech C**P
http://phoenixframework.org/blog/the-road-to-2-million-websocket-connections The Road to 2 Million Websocket Connections in Phoenix
از اونجا که تب پیام رسان های داخلی داغ هست بد نیست مطلب بالا رو مرورکنید برای اینکه بدونید چطور کرنل لینوکس رو بهبود میدن تا کانکشن های زیاد رو هندل کنند.
♨️ با توجه به اخبار منتشر شده مبنی بر فیلتر تلگرام، لطفا در صورت تمایل آدرس ما در ایتا را دنبال کنید:
یادداشت های فنی یک برنامه نویس در طول کار.
https://eitaa.com/technical_notes
یادداشت های فنی یک برنامه نویس در طول کار.
https://eitaa.com/technical_notes
A couple days ago we talked about MongoDB that uses TLS/SSL to encrypt the communication with clients connecting to it (like pyMongo). Now if you want to test MongoDB with self-signed certificate you can generate one with the command below:
This operation generates a new, self-signed certificate with no passphrase that is valid for 365 days. Once you have the certificate, concatenate the certificate and private key to a .pem file, as in the following example:
If using the YAML configuration file format, include the following configuration in the file:
#mongodb #ssl #tls #pem #openssl
cd /etc/ssl/
openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key
This operation generates a new, self-signed certificate with no passphrase that is valid for 365 days. Once you have the certificate, concatenate the certificate and private key to a .pem file, as in the following example:
cat mongodb-cert.key mongodb-cert.crt > mongodb.pem
If using the YAML configuration file format, include the following configuration in the file:
net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
NOTE:
instead of requireSSL
you can use preferSSL
to not force the requirement. It depends on the requirements and network topolgy.#mongodb #ssl #tls #pem #openssl
Now to make you MongoDB client connection secure just pass
When you run this script check your mongoDB logs (usually in
Now remove
It says that SSL mode in mongo config is set to
YOU NEED TO BE CAUTIOUS that we have created our SSL ourselves and it is vulnerable to man in the middle attack. For production usage purchase you SSL/TLS certifcate.
#mongodb #mongo #ssl #pymongo
ssl=True
:# test_mongodb_ssl.py
client = pymongo.MongoClient('example.com', ssl=True)
When you run this script check your mongoDB logs (usually in
/var/log/mongodb/mongod.log`). The thing you should take into account is that when you pass `ssl=True
parameter to MongoClient
you just should see the below log (ip addresses wil vary):I NETWORK [listener] connection accepted from 172.15.141.162:50761 #49 (39 connections now open)
I NETWORK [conn49] end connection 172.15.141.162:50761 (38 connections now open)
Now remove
ssl=True
from MongoClient
or pass ssl=False
. If you now run your test script, you would see something like below in mongod.log
:I NETWORK [listener] connection accepted from 172.15.141.162:50762 #50 (39 connections now open)
I NETWORK [conn50] SSL mode is set to 'preferred' and connection 50 to 172.15.141.162:50762 is not using SSL.
It says that SSL mode in mongo config is set to
preferSSL
and your new connection to mongo is not using it.YOU NEED TO BE CAUTIOUS that we have created our SSL ourselves and it is vulnerable to man in the middle attack. For production usage purchase you SSL/TLS certifcate.
#mongodb #mongo #ssl #pymongo
To run
Now if you want to install specific plugins you need to provide the name as an environment variable
#grafana #docker #plugins
grafana
in Docker
:docker run -d -p 3000:3000 grafana/grafana
Now if you want to install specific plugins you need to provide the name as an environment variable
GF_INSTALL_PLUGINS
:docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \
grafana/grafana
#grafana #docker #plugins
When I paste something in
To solve this issue just go to command mode by pressing
Then paste your code. Note that the text in the tooltip now says
You can set a keyboard shortcut for it (here F5):
#editor #vim #nopaste #paste #pastetoggle
vim
all lines get indentation:line
line
line
To solve this issue just go to command mode by pressing
ESC
on your keyboard now type::set paste
Then paste your code. Note that the text in the tooltip now says
-- INSERT (paste) --
.NOTE:
After you pasted your code, turn off the paste-mode, so that auto-indenting when you type works correctly again.:set nopaste
You can set a keyboard shortcut for it (here F5):
set pastetoggle=<F5>
#editor #vim #nopaste #paste #pastetoggle
Metabase by default uses
gets important when you have loads of data there (let's say hundreds of questions and tens of dashboards).
The safest way for production is to migrate this data to MySQL. It makes
The last command will run metabase and forces it to migrate data to MySQL. In case needed create
#metabase #migration #H2 #mysql
H2 Database
for its internal usage and storing questions and dashboards that you are created. When you want to move from one host to another it can be tricky and it may crash! Here you will lose your dashbaords and your containers. This mattergets important when you have loads of data there (let's say hundreds of questions and tens of dashboards).
The safest way for production is to migrate this data to MySQL. It makes
Metabase
to use MySQL as its backend not H2 Database. To migrate your data from current working H2 DB of Metabase you need to set following variables first:export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase
export MB_DB_PORT=3306
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
export MB_DB_HOST=localhost
java -jar metabase.jar load-from-h2
The last command will run metabase and forces it to migrate data to MySQL. In case needed create
metabase
database in mySQL with sufficient privileges. It should come up safely with no much headache. After moving data remove you *.db
metabase h2 DB file.#metabase #migration #H2 #mysql
Tech C**P
Metabase by default uses H2 Database for its internal usage and storing questions and dashboards that you are created. When you want to move from one host to another it can be tricky and it may crash! Here you will lose your dashbaords and your containers.…
In case you're not familiar with #metabase
Running Metabase on another port
By default Metabase will launch on port 3000, but if you prefer to run the application on another port you can do so by setting the following environment variable:
export MB_JETTY_PORT=3500
java -jar metabase.jar
In this example once the application starts up you will access it on port 3500 instead of the default port of 3000.
#metabase #port #jetty_port
Turn
Moreover you also need to change column character set:
Be careful that now you have to do more things like set character set after connection initiation in Python:
Now before executing your query you also need to set character set on cursor:
#database #mysql #character_set #utf8mb4 #cursor #emoji
MySQL
table into utf8mb4
to store emojis:ALTER TABLE YOUR_TABLE convert to character set utf8mb4 collate utf8mb4_general_ci;
Moreover you also need to change column character set:
ALTER TABLE YOUR_TABLE CHANGE YOUR_COLUMN_NAME YOUR_COLUMN_NAME VARCHAR(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Be careful that now you have to do more things like set character set after connection initiation in Python:
your_mysql_client = MySQLdb.connect(...)
your_mysql_client.set_character_set('utf8mb4')
Now before executing your query you also need to set character set on cursor:
my_cursor.execute("SET NAMES utf8mb4;")
my_cursor.execute(YOUR_QUERY)
#database #mysql #character_set #utf8mb4 #cursor #emoji
https://www.aaflalo.me/2016/09/dehydrated-bash-client-lets-encrypt/
#ssl #web #lets_encrypt #free_ssl #dehydrated
#ssl #web #lets_encrypt #free_ssl #dehydrated
Antoine Aflalo
Dehydrated: a bash client for Let's Encrypt - Antoine Aflalo
Tutorial on how to use Dehydrated, a bash client for Let's Encrypt ACME Protocol. Dehydrated helps you take care of your SSL certificates.