Skip to content

Instantly share code, notes, and snippets.

View doomerprojects's full-sized avatar

doomerprojects

View GitHub Profile
@doomerprojects
doomerprojects / docker-compose.dev.yml
Last active October 15, 2020 11:18
docker-compose.dev.yml
version: "3.1"
services:
wp-mysql:
image: bitnami/mysql:latest
container_name: ${PROJECT_NAME}-wp-mysql
volumes:
- wp-mysql-data:/bitnami/mysql/data
environment:
- MYSQL_USER=${WP_DB_USERNAME}
@doomerprojects
doomerprojects / default.conf
Last active August 8, 2020 17:50
Nginx default.conf on Docker
server {
listen 80 default;
server_name localhost;
server_tokens off;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
@doomerprojects
doomerprojects / app.conf
Created August 7, 2020 13:54
Nginx Config for NextJS + Docker Compose
server {
listen 80;
listen 443 ssl http2;
server_tokens off;
server_name www.example.com;
ssl_certificate /etc/nginx/cert/example.pem;
ssl_certificate_key /etc/nginx/cert/example.key;
rewrite ^/(.*) https://example.com/$1 permanent;
@doomerprojects
doomerprojects / docker-compose.yml
Created August 7, 2020 13:51
Docker Compose (production config) - Nginx + Phoenix (Elixir) + SSR (NextJs)
version: "3.1"
services:
nginx:
image: nginx
container_name: ${PROJECT_NAME}-webserver
tty: true
working_dir: /var/www
volumes:
- ssr_static:/var/www/
@doomerprojects
doomerprojects / paginate_ecto_paginator_phoenix_json.ex
Last active July 6, 2020 19:43
Elixir Ecto / Phoenix Json - Uses Paginator (https://github.com/duffelhq/paginator/). Sample helper function for easy usage. Uses primary key "id" for descending pagination using cursors. Suggestions are welcome for code improvement.
def paginate(repo, model, conn) do
sort = cond do
Map.has_key?(conn.query_params, "sort") ->
case conn.query_params["sort"] do
"desc" -> :desc
"asc" -> :asc
"ascending" -> :asc
"descending" -> :desc
_ -> :desc
@doomerprojects
doomerprojects / gist:026196c07b6a0129517df61499bc82fd
Created July 5, 2020 16:37
Phoenix Ecto Slugy - Generate slug using`title` key in `params` map, check for duplicates before creating, create unique time-based slug if duplicate.
require Slugy
require Timex
def slugify(repo, model, params) do
slug = Slugy.slugify(params["title"])
cond do
repo.get_by(model, slug: slug) == nil -> Map.put(params, "slug", slug)
true ->
ms = Timex.now |> DateTime.to_unix(:milliseconds) |> to_string