I use Ubuntu’s Uncomplicated firewall because it is available on Ubuntu and it's very simple.
if ufw is not installed by default be sure to install it first.
| -- create user (e.g. metabase) | |
| create user metabase with encrypted password 'password'; | |
| -- allow user connect to db | |
| grant connect on database site to metabase; | |
| -- allow user access to schema | |
| grant usage on schema public to metabase; | |
| -- grant select on existing tables |
| # redirect http to https | |
| set $redirect ""; | |
| if ($http_x_forwarded_proto != 'https') { | |
| set $redirect "1"; | |
| } | |
| if ($http_user_agent !~* ELB-HealthChecker) { | |
| set $redirect "${redirect}1"; | |
| } | |
| if ($http_host ~ "your-nifty-domain.com") { | |
| set $redirect "${redirect}1"; |
| # https://devcenter.heroku.com/articles/http-routing#heroku-headers | |
| # http://wiki.nginx.org/HttpCoreModule#.24http_HEADER | |
| # redirect all http to https with 301 | |
| if ( $http_x_forwarded_proto = http ) { | |
| return 301 https://$host$request_uri; | |
| } |
| #!/bin/bash | |
| threshold=80 # percent | |
| total=$(free | grep "Mem:" | awk '{print $2}') | |
| remaining=$(free | grep "buffers" | awk '{print $4}' | tail -n 1) | |
| current=$(echo "scale=0;100-$remaining * 100 / $total" | bc -l) | |
| if [ $current -gt $threshold ] | |
| then | |
| /etc/init.d/httpd stop |
| Passenger Standalone with Nginx | |
| ----- | |
| command | |
| passenger start -S /tmp/s.dev.socket -d | |
| nginx config example | |
| upstream s_dev_server { |
| [mysqld] | |
| init_connect='SET collation_connection = utf8mb4_unicode_ci' | |
| init_connect='SET NAMES utf8mb4' | |
| character-set-server = utf8mb4 | |
| character-set-client = utf8mb4 | |
| collation-server = utf8mb4_unicode_ci | |
| skip-character-set-client-handshake | |
| innodb_file_format = Barracuda |
| #!/bin/sh | |
| # | |
| # An example hook script for the "post-receive" event. | |
| # | |
| # The "post-receive" script is run after receive-pack has accepted a pack | |
| # and the repository has been updated. It is passed arguments in through | |
| # stdin in the form | |
| # <oldrev> <newrev> <refname> | |
| # For example: | |
| # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master |
| # rbenv setup | |
| export RBENV_ROOT=/usr/local/rbenv | |
| export PATH="$RBENV_ROOT/bin:$PATH" | |
| eval "$(rbenv init -)" |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>Label</key> | |
| <string>com.coverallcrew.firewall</string> | |
| <key>ProgramArguments</key> | |
| <array> | |
| <string>sh</string> | |
| <string>-c</string> |