next.js, nginx, reverse-proxy, ssl
$ sudo apt-get update
$ sudo apt-get install nginx letsencrypt| import os | |
| from seleniumwire import webdriver | |
| from selenium.webdriver.firefox.firefox_profile import FirefoxProfile | |
| from selenium.webdriver.firefox.firefox_binary import FirefoxBinary | |
| # Uncomment these if you need additional information for debugging | |
| #import logging | |
| #logging.basicConfig(level=logging.DEBUG) | |
| # The location of the Tor Browser bundle |
Steps to deploy a Node.js app to DigitalOcean using PM2, NGINX as a reverse proxy and an SSL from LetsEncrypt
Sometimes we need to run multiple nodejs app on same server with different domain or sub domain like admin.domain.com, api.domain.com and also need to run both nodejs or reactjs app concurrently. We can do this using 2 things , first of all we need to install nginx in our server for reverse proxy to connect different domain, and for running multiple nodejs app concurrently we can use PM2 NodeJs Process Manager
| #!/usr/bin/env bash | |
| # To fix the " gpg: WARNING: unsafe permissions on homedir '/home/path/to/user/.gnupg' " error | |
| # Make sure that the .gnupg directory and its contents is accessibile by your user. | |
| chown -R $(whoami) ~/.gnupg/ | |
| # Also correct the permissions and access rights on the directory | |
| chmod 600 ~/.gnupg/* | |
| chmod 700 ~/.gnupg |
| /* -------------------------------------------------------------------------- */ | |
| // All Bootstrap 4 Sass Mixins [Cheat sheet] | |
| // Updated to Bootstrap v4.5.x | |
| // @author https://anschaef.de | |
| // @see https://github.com/twbs/bootstrap/tree/master/scss/mixins | |
| /* -------------------------------------------------------------------------- */ | |
| /* | |
| // ########################################################################## */ | |
| // New cheat sheet for Bootstrap 5: |
The following instructions describe a set of processes allowing you to run Django database migrations against a production database without having to bring the web service down.
Note that in the below instructions, migrations are all run manually at explicit points, and are not an automatic part of the deployment process.
| import asyncio | |
| loop = asyncio.get_event_loop() | |
| async def hello(): | |
| await asyncio.sleep(3) | |
| print('Hello!') | |
| if __name__ == '__main__': | |
| loop.run_until_complete(hello()) | |