cleaner this way

This commit is contained in:
Charles N Wyble 2024-11-26 10:34:40 -06:00
parent a48de1b0d4
commit e9c49a4713
10 changed files with 563 additions and 0 deletions

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# tsys1 docker
## Introduction
This repo is for containers running on Charles (@ReachableCEO) laptop
## Portmap

View File

@ -0,0 +1,88 @@
services:
database:
image: postgres:15
restart: always
container_name: database
ports:
- '${POSTGRES_PORT:-5432}:5432'
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- database:/var/lib/postgresql/data
healthcheck:
test: [ 'CMD-SHELL', 'pg_isready -U postgres']
interval: 10s
timeout: 5s
retries: 5
graphql-server:
image: hasura/graphql-engine:latest.cli-migrations-v3
restart: always
container_name: graphql-server
ports:
- '${HASURA_PORT:-8080}:8080'
environment:
HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET}
HASURA_GRAPHQL_CORS_DOMAIN: https://${NEXT_PUBLIC_HASURA_DOMAIN}
HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@database:5432/postgres
HASURA_GRAPHQL_DEV_MODE: false
HASURA_GRAPHQL_ENABLE_CONSOLE: true
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
HASURA_GRAPHQL_JWT_SECRET: ${HASURA_GRAPHQL_JWT_SECRET}
volumes:
- ./migrations:/hasura-migrations
- ./metadata:/hasura-metadata
depends_on:
database:
condition: service_healthy
extra_hosts:
- 'host.docker.internal:host-gateway'
authentication-server:
image: ghcr.io/successible/cleanslate/authentication-server:latest
build:
context: .
dockerfile: Dockerfile.server
pull_policy: ${PULL_POLICY:-always}
restart: always
container_name: authentication-server
ports:
- '${AUTHENTICATION_SERVER_PORT:-3001}:3001'
environment:
HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET}
JWT_SIGNING_SECRET: ${JWT_SIGNING_SECRET}
NEXT_PUBLIC_USE_FIREBASE: ${NEXT_PUBLIC_USE_FIREBASE:-false}
depends_on:
- database
- graphql-server
extra_hosts:
- 'host.docker.internal:host-gateway'
client:
image: ghcr.io/successible/cleanslate/client:latest
build:
context: .
dockerfile: Dockerfile
args:
- NEXT_PUBLIC_FIREBASE_CONFIG=${NEXT_PUBLIC_FIREBASE_CONFIG:-{}}
- NEXT_PUBLIC_LEGAL_LINK=${NEXT_PUBLIC_LEGAL_LINK:-no}
- NEXT_PUBLIC_LOGIN_WITH_APPLE=${NEXT_PUBLIC_LOGIN_WITH_APPLE:-no}
- NEXT_PUBLIC_LOGIN_WITH_FACEBOOK=${NEXT_PUBLIC_LOGIN_WITH_FACEBOOK:-no}
- NEXT_PUBLIC_LOGIN_WITH_GITHUB=${NEXT_PUBLIC_LOGIN_WITH_GITHUB:-no}
- NEXT_PUBLIC_LOGIN_WITH_GOOGLE=${NEXT_PUBLIC_LOGIN_WITH_GOOGLE:-no}
- NEXT_PUBLIC_REACT_SENTRY_DSN=${NEXT_PUBLIC_REACT_SENTRY_DSN:-no}
- NEXT_PUBLIC_USE_FIREBASE=${NEXT_PUBLIC_USE_FIREBASE:-false}
- NEXT_PUBLIC_VERSION=${NEXT_PUBLIC_VERSION}
pull_policy: ${PULL_POLICY:-always}
restart: always
container_name: client
ports:
- '${CLIENT_PORT:-3000}:3000'
depends_on:
- database
- graphql-server
extra_hosts:
- 'host.docker.internal:host-gateway'
volumes:
database:

View File

@ -0,0 +1,98 @@
services:
# frontend logic
frontend:
container_name: frontend
image: ghcr.io/joaovitoriasilva/endurain/frontend:latest
environment:
- MY_APP_BACKEND_PROTOCOL=http # http or https, default is http
- MY_APP_BACKEND_HOST=localhost:98 # api host or local ip (example: 192.168.1.10:98), default is localhost:98
- MY_APP_STRAVA_CLIENT_ID=changeme
# Configure volume if you want to edit the code locally by clomming the repo
#volumes:
# - <local_path>/endurain/frontend/app:/app
ports:
- "8080:80" # frontend port, change per your needs
restart: unless-stopped
# API logic
backend:
container_name: backend
image: ghcr.io/joaovitoriasilva/endurain/backend:latest
environment:
- DB_PASSWORD=changeme
- SECRET_KEY=changeme # openssl rand -hex 32
- STRAVA_CLIENT_ID=changeme
- STRAVA_CLIENT_SECRET=changeme
- STRAVA_AUTH_CODE=changeme
- GEOCODES_MAPS_API=changeme
- FRONTEND_PROTOCOL=http # default is http
- FRONTEND_HOST=localhost:8080 # frontend host or local ip (example: 192.168.1.10:8080), default is localhost:8080
ports:
- "98:80" # API port, change per your needs
volumes:
# - <local_path>/endurain/backend/app:/app # Configure volume if you want to edit the code locally by cloning the repo
- <local_path>/endurain/backend/user_images:/app/user_images # necessary for user image persistence on container image updates
- <local_path>/endurain/backend/files/bulk_import:/app/files/bulk_import # necessary to enable bulk import of activities. Place here your activities files
- <local_path>/endurain/backend/files/processed:/app/files/processed # necessary for processed original files persistence on container image updates
- <local_path>/endurain/backend/logs:/app/logs # log files for the backend
depends_on:
- mariadb
- jaeger # optional
restart: unless-stopped
# mysql mariadb logic
mariadb:
image: mariadb:latest
container_name: mariadb
environment:
- MYSQL_ROOT_PASSWORD=changeme
- MYSQL_DATABASE=endurain
- MYSQL_USER=endurain
- MYSQL_PASSWORD=changeme
ports:
- "3306:3306"
volumes:
- <local_path>/mariadb:/var/lib/mysql
restart: unless-stopped
# Jaeger for opentelemetry - optional
# Jaeger is not enabled by default. If you do not need it or want it, you can remove this container
jaeger:
container_name: jaeger
image: jaegertracing/all-in-one:latest
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Lisbon
- COLLECTOR_ZIPKIN_HOST_PORT=:9411
ports:
- 6831:6831/udp
- 6832:6832/udp
- 5778:5778
- 16686:16686
- 4317:4317
- 4318:4318
- 14250:14250
- 14268:14268
- 14269:14269
- 9411:9411
restart: unless-stopped
# phpmyadmin for DB manipulation - optional
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin
ports:
- 81:80
environment:
- PMA_HOST=mariadb
- PMA_ARBITRARY=1
depends_on:
- mariadb
restart: unless-stopped
networks:
default:
external: true
name: backend_network

View File

@ -0,0 +1,36 @@
version: "3"
services:
client:
build: .
networks:
- habitica
environment:
- BASE_URL=http://server:3000
ports:
- "8080:8080"
command: ["npm", "run", "client:dev"]
depends_on:
- server
server:
build: .
ports:
- "3000:3000"
networks:
- habitica
environment:
- NODE_DB_URI=mongodb://mongo/habitrpg
depends_on:
- mongo
mongo:
image: mongo:3.6
ports:
- "27017:27017"
networks:
- habitica
networks:
habitica:
driver: bridge

View File

@ -0,0 +1,8 @@
services:
resume-matcher:
image : resume-matcher
build:
context: ./
dockerfile : build.dockerfile
ports:
- 80:8501

View File

@ -0,0 +1,65 @@
version: '3.5'
services:
tubearchivist:
container_name: tubearchivist
restart: unless-stopped
image: bbilly1/tubearchivist
ports:
- 8000:8000
volumes:
- media:/youtube
- cache:/cache
environment:
- ES_URL=http://archivist-es:9200 # needs protocol e.g. http and port
- REDIS_HOST=archivist-redis # don't add protocol
- HOST_UID=1000
- HOST_GID=1000
- TA_HOST=tubearchivist.local # set your host name
- TA_USERNAME=tubearchivist # your initial TA credentials
- TA_PASSWORD=verysecret # your initial TA credentials
- ELASTIC_PASSWORD=verysecret # set password for Elasticsearch
- TZ=America/New_York # set your time zone
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 2m
timeout: 10s
retries: 3
start_period: 30s
depends_on:
- archivist-es
- archivist-redis
archivist-redis:
image: redis/redis-stack-server
container_name: archivist-redis
restart: unless-stopped
expose:
- "6379"
volumes:
- redis:/data
depends_on:
- archivist-es
archivist-es:
image: bbilly1/tubearchivist-es # only for amd64, or use official es 8.14.3
container_name: archivist-es
restart: unless-stopped
environment:
- "ELASTIC_PASSWORD=verysecret" # matching Elasticsearch password
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- "xpack.security.enabled=true"
- "discovery.type=single-node"
- "path.repo=/usr/share/elasticsearch/data/snapshot"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme
expose:
- "9200"
volumes:
media:
cache:
redis:
es:

1
upstream/wger Submodule

@ -0,0 +1 @@
Subproject commit 335623570988f0f81e3106e09fe20c6ad77f7735

View File

@ -0,0 +1,24 @@
#!/bin/bash
#i hope i can make this work
# it runs and it works in offstage but not here...
#hmm this worked in the other account..
# Select an existing docker image tag
VERSION=latest
# Path to configured `settings.json`
SETTINGS=/path/to/settings.json
# Port used internally (use the same one than in `settings.json`)
SERVICE_PORT=3000
# Port to publish
PUBLISHED_PORT=2002
docker run \
-d \
--rm \
--name metrics \
--entrypoint="" \
-p=127.0.0.1:$PUBLISHED_PORT:$SERVICE_PORT \
--volume=$SETTINGS:/metrics/settings.json \
ghcr.io/lowlighter/metrics:$VERSION npm start

View File

@ -0,0 +1,225 @@
{
"//": "Example of configuration for metrics web instance",
"//": "====================================================================",
"token": "A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", "//": "GitHub Personal Token (required)",
"modes": ["embed", "insights"], "//": "Web instance enabled modes",
"restricted": [], "//": "Authorized users (empty to disable)",
"maxusers": 0, "//": "Maximum users, (0 to disable)",
"cached": 3600000, "//": "Cache time rendered metrics (0 to disable)",
"ratelimiter": null, "//": "Rate limiter (see express-rate-limit documentation)",
"port": 3000, "//": "Listening port",
"optimize": true, "//": "SVG optimization",
"debug": false, "//": "Debug logs",
"debug.headless": false, "//": "Debug puppeteer process",
"mocked": false, "//": "Use mocked data instead of live APIs (use 'force' to use mocked token even if real token are defined)",
"repositories": 100, "//": "Number of repositories to use",
"padding": ["0", "8 + 11%"], "//": "Image padding (default)",
"outputs": ["svg", "png", "json"], "//": "Image output formats (empty to enable all)",
"hosted": {
"by": "ReachableCEO Dev Workstation", "//": "Web instance host (displayed in footer)",
"link": "https://www.reachableceo.com", "//": "Web instance host link (displayed in footer)"
},
"oauth":{
"id": null, "//": "GitHub OAUTH client id",
"secret": null, "//": "GitHub OAUTH client secret",
"url":"https://example.com", "//": "GitHub OAUTH callback url (must be the same as the web instance host)"
},
"api":{
"rest": null, "//": "GitHub REST API custom endpoint",
"graphql": null, "//": "GitHub GraphQL API custom endpoint"
},
"control":{
"token": null, "//": "Control token (can be used by external services to perform actions on instance, such as stopping it for redeploys)"
},
"community": {
"templates": [], "//": "Additional community templates to setup"
},
"templates": {
"default": "classic", "//": "Default template",
"enabled": [], "//": "Enabled templates (empty to enable all)"
},
"extras": {
"default": false, "//": "Default extras state (advised to let 'false' unless in debug mode)",
"features": false, "//": "Enable extra features (advised to let 'false' on web instances), see below for supported features",
"//": "________________________________________________________________________",
"//": "metrics.setup.community.templates | Allow community templates download",
"//": "metrics.setup.community.presets | Allow community presets usage",
"//": "metrics.api.github.overuse | Allow GitHub API intensive requests",
"//": "metrics.api.* | Allow use of external API requests",
"//": "metrics.cpu.overuse | Allow CPU intensive requests",
"//": "metrics.run.tempdir | Allow access to temporary directory (I/O operations may be performed)",
"//": "metrics.run.git | Allow to run git",
"//": "metrics.run.licensed | Allow to run licensed",
"//": "metrics.run.user.cmd | Allow to run ANY command by user (USE WITH CAUTION!)",
"//": "metrics.run.puppeteer.scrapping | Allow to run puppeteer to scrape data",
"//": "metrics.run.puppeteer.user.css | Allow to run CSS by user during puppeteer render",
"//": "metrics.run.puppeteer.user.js | Allow to run JavaScript by user during puppeteer render",
"//": "metrics.npm.optional.* | Allow use of specified dependency",
"//": "________________________________________________________________________",
"//": "Additional extra features when user is logged with GitHub",
"logged": [
"metrics.api.github.overuse"
]
},
"plugins.default": false, "//": "Default plugin state (advised to let 'false' unless in debug mode)",
"plugins": { "//": "Global plugin configuration",
"isocalendar":{
"enabled": false, "//": "Enable isocalendar plugin"
},
"languages":{
"enabled": true, "//": "Enable languages plugin"
},
"stargazers":{
"worldmap.token": null, "//": "Stargazers worldmap token",
"enabled": false, "//": "Enable stargazers plugin"
},
"lines":{
"enabled": true, "//": "Enable lines plugin"
},
"topics":{
"enabled": true, "//": "Enable topics plugin"
},
"stars":{
"enabled": true, "//": "Enable stars plugin"
},
"licenses":{
"enabled": true, "//": "Enable licenses plugin"
},
"habits":{
"enabled": true, "//": "Enable habits plugin"
},
"contributors":{
"enabled": true, "//": "Enable contributors plugin"
},
"followup":{
"enabled": true, "//": "Enable followup plugin"
},
"reactions":{
"enabled": true, "//": "Enable reactions plugin"
},
"people":{
"enabled": true, "//": "Enable people plugin"
},
"sponsorships":{
"enabled": true, "//": "Enable sponsorships plugin"
},
"sponsors":{
"enabled": true, "//": "Enable sponsors plugin"
},
"repositories":{
"enabled": true, "//": "Enable repositories plugin"
},
"discussions":{
"enabled": true, "//": "Enable discussions plugin"
},
"starlists":{
"enabled": true, "//": "Enable starlists plugin"
},
"calendar":{
"enabled": true, "//": "Enable calendar plugin"
},
"achievements":{
"enabled": true, "//": "Enable achievements plugin"
},
"notable":{
"enabled": true, "//": "Enable notable plugin"
},
"activity":{
"enabled": true, "//": "Enable activity plugin"
},
"traffic":{
"enabled": true, "//": "Enable traffic plugin"
},
"code":{
"enabled": true, "//": "Enable code plugin"
},
"gists":{
"enabled": true, "//": "Enable gists plugin"
},
"projects":{
"enabled": true, "//": "Enable projects plugin"
},
"introduction":{
"enabled": true, "//": "Enable introduction plugin"
},
"skyline":{
"enabled": false, "//": "Enable skyline plugin"
},
"support":{
"enabled": false, "//": "Enable support plugin"
},
"pagespeed":{
"token": "PageSpeed token",
"enabled": false, "//": "Enable pagespeed plugin"
},
"tweets":{
"token": "Twitter API token",
"enabled": false, "//": "Enable tweets plugin"
},
"stackoverflow":{
"enabled": false, "//": "Enable stackoverflow plugin"
},
"anilist":{
"enabled": false, "//": "Enable aniList plugin"
},
"music":{
"token": "Music provider token",
"enabled": false, "//": "Enable music plugin"
},
"posts":{
"enabled": false, "//": "Enable posts plugin"
},
"rss":{
"enabled": false, "//": "Enable rss plugin"
},
"wakatime":{
"token": "664dd8b2-b73a-4f31-82ef-96ed424814d2",
"enabled": true, "//": "Enable wakatime plugin"
"url": "http://localhost:2001/api",
"days": 7,
"sections": "time, projects, projects-graphs",
"limit": 4,
},
"leetcode":{
"enabled": false, "//": "Enable leetcode plugin"
},
"steam":{
"token": "Steam token",
"enabled": false, "//": "Enable steam plugin"
},
"16personalities":{
"enabled": false, "//": "Enable 16personalities plugin"
},
"chess":{
"token": "Chess platform token",
"enabled": false, "//": "Enable chess plugin"
},
"crypto":{
"enabled": false, "//": "Enable crypto plugin"
},
"fortune":{
"enabled": false, "//": "Enable fortune plugin"
},
"nightscout":{
"enabled": false, "//": "Enable nightscout plugin"
},
"poopmap":{
"token": "PoopMap API token",
"enabled": false, "//": "Enable poopmap plugin"
},
"screenshot":{
"enabled": false, "//": "Enable screenshot plugin"
},
"splatoon":{
"token": "Splatnet token",
"statink.token": null, "//": "stat.ink token",
"enabled": false, "//": "Enable splatoon plugin"
},
"stock":{
"token": "Yahoo Finance token",
"enabled": false, "//": "Enable stock plugin"
},
"//": ""
}
}

View File

@ -0,0 +1,9 @@
#!/bin/bash
docker run -d \
-p 2001:3000 \
-e "WAKAPI_PASSWORD_SALT=1234" \
-v wakapi-data-tsys:/data \
--restart=always \
--name wakaapi-tsys \
ghcr.io/muety/wakapi:latest