File | Purpose |
---|---|
/etc/compose/docker-compose.yml |
Compose file describing what to deploy |
/etc/systemd/system/docker-compose.service |
Service unit to start and manage docker compose |
/etc/systemd/system/docker-compose-reload.service |
Executing unit to trigger reload on docker-compose.service |
/etc/systemd/system/docker-compose-reload.timer |
Timer unit to plan the reloads |
#! /bin/bash | |
# | |
# Diffusion youtube avec ffmpeg | |
# Configurer youtube avec une résolution 720p. La vidéo n'est pas scalée. | |
VBR="2500k" # Bitrate de la vidéo en sortie | |
FPS="30" # FPS de la vidéo en sortie | |
QUAL="medium" # Preset de qualité FFMPEG | |
YOUTUBE_URL="rtmp://a.rtmp.youtube.com/live2" # URL de base RTMP youtube |
#/bin/sh | |
ffmpeg -i input -c:v libx264 -preset slow -profile:v high -crf 18 -coder 1 -pix_fmt yuv420p -movflags +faststart -g 30 -bf 2 -c:a aac -b:a 384k -profile:a aac_low output |
global | |
lua-load /usr/local/etc/haproxy/acme-http01-webroot.lua | |
ssl-default-bind-ciphers AES256+EECDH:AES256+EDH:!aNULL; | |
tune.ssl.default-dh-param 4096 | |
debug | |
defaults | |
mode http | |
option log-health-checks | |
option dontlognull |
Once in a while, you may need to cleanup resources (containers, volumes, images, networks) ...
// see: https://github.com/chadoe/docker-cleanup-volumes
$ docker volume rm $(docker volume ls -qf dangling=true)
$ docker volume ls -qf dangling=true | xargs -r docker volume rm
rtl-sdr build notes for OSX | |
using macports http://www.macports.org/ | |
see http://sdr.osmocom.org/trac/wiki/rtl-sdr | |
brew install cmake | |
brew install libusb | |
brew install pkgconfig | |
brew install sox # for easy audio | |
git clone git://git.osmocom.org/rtl-sdr.git | |
cd rtl-sdr/ |
import UIKit | |
class ChatCollectionViewFlowLayout: UICollectionViewFlowLayout { | |
private var topMostVisibleItem = Int.max | |
private var bottomMostVisibleItem = -Int.max | |
private var offset: CGFloat = 0.0 | |
private var visibleAttributes: [UICollectionViewLayoutAttributes]? |
This guide was written because I don't particularly enjoy deploying Phoenix (or Elixir for that matter) applications. It's not easy. Primarily, I don't have a lot of money to spend on a nice, fancy VPS so compiling my Phoenix apps on my VPS often isn't an option. For that, we have Distillery releases. However, that requires me to either have a separate server for staging to use as a build server, or to keep a particular version of Erlang installed on my VPS, neither of which sound like great options to me and they all have the possibilities of version mismatches with ERTS. In addition to all this, theres a whole lot of configuration which needs to be done to setup a Phoenix app for deployment, and it's hard to remember.
For that reason, I wanted to use Docker so that all of my deployments would be automated and reproducable. In addition, Docker would allow me to have reproducable builds for my releases. I could build my releases on any machine that I wanted in a contai
# mix.exs file dependencies: | |
# defp deps do | |
# [ | |
# {:sweet_xml, "~> 0.4.0"}, | |
# {:json, "~> 0.3.0"} | |
# ] | |
# end | |
defmodule ElixirXml do | |
import SweetXml |
There are two modes when you don't want Certbot to edit your configuration:
- Standalone: replaces the webserver to respond to ACME challenges
- Webroot: needs your webserver to serve challenges from a known folder.
Webroot is better because it doesn't need to replace Nginx (to bind to port 80) to renew certificates.
In the following, we're setting up mydomain.com
to be served from /var/www/mydomain
, and challenges will be served from /var/www/letsencrypt
.