Skip to content

Instantly share code, notes, and snippets.

@sharshenov
sharshenov / gist:edaca25b3b9094359c95f4ae66cd4222
Created July 22, 2016 16:55
Using wkhtmltopdf without X server
apt-get install wkhtmltopdf
apt-get install xvfb
echo -e '#!/bin/bash\nxvfb-run -a --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf -q $*' > /usr/bin/wkhtmltopdf.sh
chmod a+x /usr/bin/wkhtmltopdf.sh
ln -s /usr/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf
wkhtmltopdf http://www.google.com output.pdf
@sharshenov
sharshenov / gist:0b5a454ea3282cc779dfce0f93bdab24
Last active November 8, 2021 16:18
ubuntu remove blue dot from slack icon in tray
#!/bin/sh
# https://superuser.com/a/1536290
# npm install -g asar
set -ex
killall slack || true
mkdir -p ~/tmp/slack
asar extract /usr/lib/slack/resources/app.asar ~/tmp/slack
@sharshenov
sharshenov / truncatable.rb
Created April 10, 2020 13:18
Truncate string attributes to database limit in Rails
# frozen_string_literal: true
# Usage:
# Place it in app/models/concerns dir
#
# Include in class
# class Product < ApplicationRecord
# include Truncatable
# end
#
@sharshenov
sharshenov / nginx.conf
Created January 10, 2018 17:45
Nginx forward proxy with requests rate throttling
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
@sharshenov
sharshenov / .env.production
Created August 20, 2015 06:00
capistrano + foreman deploy for RubyOnRails
SECRET_KEY_BASE=ahsbdjhasbjhdabks # run rake:secret to generate
DATABASE_URL=postgres://user:pass@dbhost/database
@sharshenov
sharshenov / gist:33c0dd55c838ecd5762c
Created November 16, 2015 11:16
Rails middleware for health check endpoint
class HealthCheckResponder
def initialize(app, options = {})
@app = app
end
def call(env)
if env["REQUEST_PATH"] == "/health_check"
return [200, {}, [""]]
else
#!/bin/bash
# add to /etc/rc.local
# su -c '/home/rails/scripts/talkzzz'
#
# add to /home/rails/.profile
# PATH=$HOME/scripts/:$PATH
#
APP="api_hd"
@sharshenov
sharshenov / gist:793e6dee2c5bee9d82d6
Last active December 5, 2016 16:47
Конфигурация elasticsearch для нужд небольших проектов(никакого HighAvailability & Load Balancing)
# Добавляем репозиторий для oracle java
add-apt-repository ppa:webupd8team/java
# Добавляем репозиторий для elasticsearch
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
# Обновить систему
apt-get update && apt-get dist-upgrade -y && apt-get autoremove -y && apt-get clean
@sharshenov
sharshenov / gist:f4d05ed3a701133a3c35
Last active December 5, 2016 16:45
Nginx config for puma socket
upstream application {
server unix:/home/deploy/apps/APPNAME/shared/tmp/sockets/puma.sock fail_timeout=0;
}
# Optional redirect
#server {
# listen 80;
# server_name www.DOMAIN default;
# return 301 $scheme://DOMAIN$request_uri;
#}
@sharshenov
sharshenov / backup_standby.sh
Last active December 5, 2016 16:44
Making PostgreSQL backup from standby server
# 1. Pause replication
sudo -u postgres psql -c 'SELECT pg_xlog_replay_pause();'
# 2. Perform backup
sudo -u postgres pg_dump -Fc DBNAME > /path/to/backup
#3. Resume replication