sudoscientist blog backend https://sudoscientist.com
This repository has been archived on 2023-07-09. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Amarpreet Minhas 983e7bd659 Force push 2023-07-08 20:29:35 -04:00
migrations Reorganize code, begin adding comments, split out routes 2020-01-25 22:56:11 -05:00
packages Update jwtauth and remove jwt-go since it has vulns 2021-01-16 19:26:19 -05:00
settings Fix up accessing ui in dev mode via env variables 2020-01-22 22:45:07 -05:00
.gitignore Update gitignore 2020-01-18 20:45:45 -05:00
LICENSE Initial commit 2019-02-03 00:56:29 -05:00
README.md Update readme to be more relevant to today 2021-05-15 16:53:02 -04:00
db_reset.sh Split out migrations 2020-01-14 22:40:32 -05:00
main.go Force push 2023-07-08 20:29:35 -04:00

README.md

sudoscientist

sudoscientist blog

Setup

Install steps are for Debian 11 (bullseye)

  1. Install docker-ce

    # stolen from https://docs.docker.com/install/linux/docker-ce/debian/
    sudo apt-get remove docker docker-engine docker.io containerd runc
    sudo apt-get update
    sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    # verify the key's fingerprint
    # ----------
    sudo apt-key fingerprint 0EBFCD88
        pub   4096R/0EBFCD88 2017-02-22
        Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
        Docker Release (CE deb) <docker@docker.com>
        sub   4096R/F273FCD8 2017-02-22
    # ----------
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
  2. Install golang

    sudo apt-get update
    sudo apt-get install golang
    # set the gopath manually for the rest of the setup
    export GOPATH=${HOME}/go
    
  3. Install migrate

    # this assumes you have ${GOPATH}/bin in your ${PATH}
    go get -u -d github.com/mattes/migrate/cli github.com/lib/pq
    go build -tags 'postgres' -o ${GOPATH}/bin/migrate github.com/mattes/migrate/cli
    
    
  4. Clone repo and configure the settings

    mkdir -p ${GOPATH}/src/git.minhas.io/asara
    cd ${GOPATH}/src/git.minhas.io/asara
    git clone https://git.minhas.io/asara/sudoscientist-go-backend
    # iterate through the environment files in the settings directory and set them appropriately
    # make sure the extension is .env (db.env, secrets.env, website.env... etc.)
    
  5. Configure docker postgres for testing

    # make sure your user is in the docker group
    sudo usermod -aG docker $(whoami)
    
    # make sure you have some postgres client installed
    sudo apt-get install postgres-client
    docker pull postgres
    docker run -e POSTGRES_PASSWORD=${DB_ADMIN_PW} --name sudosci-db -d postgres
    
    # Initalize the postgres DB
    cd ${GOPATH}/src/git.minhas.io/asara/sudoscientist
    for i in settings/*; do source $i; done
    export DB_HOST=$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" sudosci-db)
    psql -d postgres -U postgres -h ${DB_HOST} << EOF
    CREATE DATABASE ${DB_NAME};
    CREATE USER ${DB_USER} WITH ENCRYPTED PASSWORD '${DB_PW}';
    GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};
    ALTER DATABASE ${DB_NAME} OWNER TO ${DB_USER};
    EOF
    
  6. Run the application!

    PLEASE NOTE, THERE ARE DEFAULT TEST VALUES FOR A POSTAL SERVER
    PLEASE REMOVE THESE IF YOU DONT HAVE A POSTAL BACKEND TO TEST FROM!
    

    For more information on Postal

    cd ${GOPATH}/src/git.minhas.io/asara/sudoscientist-go-backend
    for i in settings/*.env; do source $i; done
    export DB_HOST=$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" sudosci-db)
    PSQL_QUERY_STRING="postgres://${DB_USER}:${DB_PW}@${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=${DB_SSL}"
    migrate -path migrations/ -database ${PSQL_QUERY_STRING} up
    go get
    go run main.go