Skip to content

Instantly share code, notes, and snippets.

View colinbes's full-sized avatar

Colin Bester colinbes

  • Bester Designs LLC
  • Austin, Texas
View GitHub Profile
@colinbes
colinbes / EventRoute.scala
Last active May 23, 2023 22:37
cats-effect 3 and http4s route pushing SSE using streams backed by cats-effect queue
package com.bdesigns.sse.routes
import cats.effect.*
import cats.effect.implicits.*
import cats.effect.std.*
import cats.effect.std.syntax.all.*
import cats.implicits.*
import cats.syntax.all.*
import com.bdesigns.sse.core.MyAuth
import com.bdesigns.sse.domain.{ClockStreamedResponse, User}
@colinbes
colinbes / main.ts
Created November 17, 2021 21:49
Discriminated Unions
interface MyError {
type: "error";
item: {status: number, msg: string};
}
interface MyNums {
type: "mynums";
item: number[];
}
@colinbes
colinbes / application.conf
Created March 5, 2021 15:09
Logback and application.conf for Akka-Http
akka {
loggers = ["akka.event.slf4j.Slf4jLogger"]
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
loglevel = WARNING
stdout-loglevel = WARNING
log-config-on-start = off
default-dispatcher {
fork-join-executor {
parallelism-min = 8
}
trait RedisKeyEvents extends StreamingActor {
implicit val actorSystem: ActorSystem[IoTSupervisor.IoTCommand]
implicit val executionContext: ExecutionContextExecutor
implicit val timeout: Timeout
val redisUri: URI = RedisConnector.getConnectionUri
val logger: Logger
val redisClient: RedisClient = {
logger.info(s"Connecting to redis at $redisUri")
new RedisClient(redisUri)
@colinbes
colinbes / full_docker-compose.yml
Created March 3, 2021 22:22
Complete docker-compose file for nginx, Akka and redis
version: '3'
services:
redis:
image: redis:6.2.0-alpine
volumes:
- ./redis-config:/usr/local/etc/redis
ports:
- "12345:6379"
command: redis-server /usr/local/etc/redis/redis.conf
@colinbes
colinbes / base-nginx.conf
Last active March 3, 2021 22:20
Basic nginx configuration file.
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
@colinbes
colinbes / stage2-docker-compose.yml
Created March 3, 2021 20:39
Stage 2 docker-compose file
version: '3'
services:
redis:
image: redis:6.2.0-alpine
volumes:
- ./redis-config:/usr/local/etc/redis
ports:
- "12345:6379"
command: redis-server /usr/local/etc/redis/redis.conf
@colinbes
colinbes / build.sbt
Created March 3, 2021 20:27
build.sbt snippet for enabling dockering a scala application using sbt-native-packager
import com.typesafe.sbt.packager.docker.{ExecCmd, _}
enablePlugins(JavaAppPackaging)
enablePlugins(DockerPlugin)
dockerBaseImage := "openjdk:8-jre-alpine"
dockerExposedPorts := Seq(8082)
dockerRepository := Some("bdesigns")
daemonUser in Docker := "daemon"
//packageName in Docker := "server-akka"
version: '3'
services:
redis:
image: redis:6.2.0-alpine
volumes:
- ./redis-config:/usr/local/etc/redis
ports:
- "12345:6379"
command: redis-server /usr/local/etc/redis/redis.conf
@colinbes
colinbes / redis.conf
Created March 3, 2021 19:53
Redis configuration for dockerized Redis enable keyspace and event notificaton
appendonly yes
notify-keyspace-events KEA