aitumik / snippetbox

Snippetbox web app

Home Page:https://aitumik-snippetbox.fly.dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Snippetbox

Snippetbox is a golang application for curating snippets

Docker Setup

Note that to clone the repository you need to have git installed

git clone https://github.com/aitumik/snippetbox

Make sure you have installed docker

cd snippetbox

Here is the docker-compose.yaml

# Application
  snippetbox:
    container_name: snippetbox
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "5000:5000"
    depends_on:
      - postgres
    env_file: .env
    volumes:
      - ./:/snippetbox
# Database
  postgres:
    env_file: .env
    image: "postgres"
    hostname: "postgres"
    ports:
        - "5432:5432"
    volumes:
        - pgdata:/var/lib/postgresql/data
# Adminer
  admner:
    container_name: admner
    image: dockette/adminer
    restart: always
    ports:
      - "8085:80"
    depends_on:
      - postgres
# Volumes
volumes:
  pgdata:
    driver: local

Build and Run

docker-compose up -d

Snippetbox Snippetbox Screenshot. Adminer Adminer Screenshot.

Todo

  • Oauth2 for authentication
  • Redis for caching (we mostly do reads,writes are minimum)
  • Kibana for analytics and visualization of data
  • Setup CI/CD
  • Add coverage tests

In Progress

  • Add search capabilities by integrating with elasticsearch

Done ✓

  • Cache templates for faster rendering
  • Request logging middleware implemented
  • Panic recovery middleware
  • Add middlewares
  • Dockerize the application

Tools

  • Postgres
  • Elasticsearch

Coverage

About

Snippetbox web app

https://aitumik-snippetbox.fly.dev/

License:MIT License


Languages

Language:Go 80.4%Language:CSS 15.9%Language:Dockerfile 2.1%Language:Shell 1.1%Language:JavaScript 0.6%