As configured in my dotfiles.
start new:
tmux
start new with session name:
| from subprocess import Popen, PIPE | |
| from time import sleep | |
| # run the shell as a subprocess: | |
| p = Popen(['python', 'shell.py'], | |
| stdin = PIPE, stdout = PIPE, stderr = PIPE, shell = False) | |
| # issue command: | |
| p.stdin.write('command\n') | |
| # let the shell output the result: | |
| sleep(0.1) |
| Okay so here's the setup: | |
| [-] The primary server API is exposed via Flask (Python) and all static files, including all html, css, js is served by nginx. | |
| [-] Python is exposing an API at url http://domain.com/api/download/<file_id>, where file_id is a database id for the file that we're interested in downloading. | |
| 1. User wants to download a file, so we spawn a new window with the url '/api/download/<file_id>' | |
| 2. Nginx intercepts the request, sees that it starts with /api/, and then forwards the request to Flask, which is being served on port 5000. | |
| 3. Flask routes the request to its download method, retrieves the pertinent data from the file_id, and constructs additional header settings to make nginx happy and to force the browser to see the file stream as a download request instead of the browser just trying to open the file in a new window. Flask then returns the modified header stream to nginx | |
| 4. Nginx is finally ready to do some work. While parsing the headers for the incoming request, it encounters "X |
As configured in my dotfiles.
start new:
tmux
start new with session name:
| docker-compose up -d | |
| docker attach myapp_web_1 |
| # | |
| # Acts as a nginx HTTPS proxy server | |
| # enabling CORS only to domains matched by regex | |
| # /https?://.*\.mckinsey\.com(:[0-9]+)?)/ | |
| # | |
| # Based on: | |
| # * http://blog.themillhousegroup.com/2013/05/nginx-as-cors-enabled-https-proxy.html | |
| # * http://enable-cors.org/server_nginx.html | |
| # | |
| server { |
| #msgs_scroller_div::-webkit-scrollbar-track, #client_body::before, .client_container, | |
| #search_terms, #client_body, #footer, ts-message, .channel_header, ts-jumper ts-jumper-container, | |
| ts-jumper input[type="text"] { | |
| background: #002B36 !important; | |
| } | |
| #client_body::before { | |
| border-bottom: 1px solid #268BD2 !important; | |
| } |
| -- show running queries (pre 9.2) | |
| SELECT procpid, age(query_start, clock_timestamp()), usename, current_query | |
| FROM pg_stat_activity | |
| WHERE current_query != '<IDLE>' AND current_query NOT ILIKE '%pg_stat_activity%' | |
| ORDER BY query_start desc; | |
| -- show running queries (9.2) | |
| SELECT pid, age(query_start, clock_timestamp()), usename, query | |
| FROM pg_stat_activity | |
| WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%' |
| #!/bin/bash | |
| # | |
| # Backup a Postgresql database into a daily file. | |
| # | |
| BACKUP_DIR=/pg_backup | |
| DAYS_TO_KEEP=14 | |
| FILE_SUFFIX=_pg_backup.sql | |
| DATABASE= | |
| USER=postgres |