diff --git a/compose/streamlit-fin/Dockerfile b/compose/streamlit-fin/Dockerfile deleted file mode 100644 index 535de08..0000000 --- a/compose/streamlit-fin/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -# base image -FROM python:3.12-slim - -#basic build prep -RUN apt-get update && apt-get install -y \ - build-essential \ - curl \ - software-properties-common \ - git \ - && rm -rf /var/lib/apt/lists/* - -# copy over and install packages -COPY ./src/requirements.txt ./requirements.txt -RUN pip3 install cython -RUN pip3 install -r requirements.txt - -# streamlit-specific commands -RUN mkdir -p /root/.streamlit -RUN bash -c 'echo -e "\ -[general]\n\ -email = \"\"\n\ -" > /root/.streamlit/credentials.toml' -# RUN bash -c 'echo -e "\ -# [server]\n\ -# baseUrlPath = \"/fin\"\n\ -# " > /root/.streamlit/config.toml' - -# copying everything over -COPY . . \ No newline at end of file diff --git a/test/baby.yml b/test/baby.yml new file mode 100644 index 0000000..44cfd1d --- /dev/null +++ b/test/baby.yml @@ -0,0 +1,92 @@ +services: + # Traefik 3 - Reverse Proxy + traefik: + container_name: traefik + image: traefik:latest + security_opt: + - no-new-privileges:true + restart: unless-stopped + # profiles: ["core", "all"] + networks: + t3_proxy: + ipv4_address: 192.168.90.254 # You can specify a static IP + socket_proxy: + command: # CLI arguments + - --global.checkNewVersion=true + - --global.sendAnonymousUsage=true + - --entrypoints.web.address=:80 + - --entrypoints.websecure.address=:443 + - --entrypoints.traefik.address=:8080 + - --entrypoints.websecure.http.tls=true + - --entrypoints.web.http.redirections.entrypoint.to=websecure + - --entrypoints.web.http.redirections.entrypoint.scheme=https + - --entrypoints.web.http.redirections.entrypoint.permanent=true + - --api=true + - --api.dashboard=true + # - --api.insecure=true + #- --serversTransport.insecureSkipVerify=true + # Allow these IPs to set the X-Forwarded-* headers - Cloudflare IPs: https://www.cloudflare.com/ips/ + - --entrypoints.websecure.forwardedHeaders.trustedIPs=$CLOUDFLARE_IPS,$LOCAL_IPS + - --log=true + - --log.filePath=/logs/traefik.log + - --log.level=DEBUG # (Default: error) DEBUG, INFO, WARN, ERROR, FATAL, PANIC + - --accessLog=true + - --accessLog.filePath=/logs/access.log + - --accessLog.bufferingSize=100 # Configuring a buffer of 100 lines + - --accessLog.filters.statusCodes=204-299,400-499,500-599 + - --providers.docker=true + # - --providers.docker.endpoint=unix:///var/run/docker.sock # Disable for Socket Proxy. Enable otherwise. + - --providers.docker.endpoint=tcp://socket-proxy:2375 # Enable for Socket Proxy. Disable otherwise. + - --providers.docker.exposedByDefault=false + - --providers.docker.network=t3_proxy + # - --providers.docker.swarmMode=false # Traefik v2 Swarm + # - --providers.swarm.endpoint=tcp://127.0.0.1:2377 # Traefik v3 Swarm + - --entrypoints.websecure.http.tls.options=tls-opts@file + # Add dns-cloudflare as default certresolver for all services. Also enables TLS and no need to specify on individual services + - --entrypoints.websecure.http.tls.certresolver=dns-cloudflare + - --entrypoints.websecure.http.tls.domains[0].main=$DOMAINNAME_1 + - --entrypoints.websecure.http.tls.domains[0].sans=*.$DOMAINNAME_1 + # - --entrypoints.websecure.http.tls.domains[1].main=$DOMAINNAME_2 # Pulls main cert for second domain + # - --entrypoints.websecure.http.tls.domains[1].sans=*.$DOMAINNAME_2 # Pulls wildcard cert for second domain + - --providers.file.directory=/rules # Load dynamic configuration from one or more .toml or .yml files in a directory + - --providers.file.watch=true # Only works on top level files in the rules folder + - --certificatesResolvers.dns-cloudflare.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory # LetsEncrypt Staging Server - uncomment when testing + - --certificatesResolvers.dns-cloudflare.acme.storage=/acme.json + - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.provider=cloudflare + - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.resolvers=1.1.1.1:53,1.0.0.1:53 + - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.delayBeforeCheck=90 # To delay DNS check and reduce LE hitrate + ports: + - target: 80 + published: 80 + protocol: tcp + mode: host + - target: 443 + published: 443 + protocol: tcp + mode: host + # - target: 8080 # need to enable --api.insecure=true + # published: 8085 + # protocol: tcp + # mode: host + volumes: + - $DOCKERDIR/appdata/traefik3/rules/$HOSTNAME:/rules # Dynamic File Provider directory + # - /var/run/docker.sock:/var/run/docker.sock:ro # Enable if not using Socket Proxy + - $DOCKERDIR/appdata/traefik3/acme/acme.json:/acme.json # Certs File + - $DOCKERDIR/logs/$HOSTNAME/traefik:/logs # Traefik logs + environment: + - TZ=$TZ + - CF_DNS_API_TOKEN_FILE=/run/secrets/cf_dns_api_token + - HTPASSWD_FILE=/run/secrets/basic_auth_credentials # HTTP Basic Auth Credentials + - DOMAINNAME_1 # Passing the domain name to traefik container to be able to use the variable in rules. + secrets: + - cf_dns_api_token + - basic_auth_credentials + labels: + - "traefik.enable=true" + # HTTP Routers + - "traefik.http.routers.traefik-rtr.entrypoints=websecure" + - "traefik.http.routers.traefik-rtr.rule=Host(`traefik.$DOMAINNAME_1`)" + # Services - API + - "traefik.http.routers.traefik-rtr.service=api@internal" + # Middlewares + - "traefik.http.routers.traefik-rtr.middlewares=middlewares-basic-auth@file" # For Basic HTTP Authentication \ No newline at end of file diff --git a/test/core.yml b/test/core.yml new file mode 100644 index 0000000..7120e57 --- /dev/null +++ b/test/core.yml @@ -0,0 +1,25 @@ +services: + reverse-proxy: + image: traefik:latest + ports: + - "80:80" + - "8080:8080" + # - "443:443" + volumes: + - ./traefik.yml:/traefik.yml:ro + - /var/run/docker.sock:/var/run/docker.sock + # - tls:/tls + + dozzle: + container_name: dozzle + image: amir20/dozzle:latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + labels: + - "traefik.enable=true" + - "traefik.http.routers.dozzle.entrypoints=web" + - "traefik.http.routers.dozzle.rule=Host(`mac`)" + - "traefik.http.services.dozzle.loadbalancer.server.port=8080" + +# volumes: +# tls: \ No newline at end of file diff --git a/test/traefik.yml b/test/traefik.yml new file mode 100644 index 0000000..5b5adef --- /dev/null +++ b/test/traefik.yml @@ -0,0 +1,25 @@ + +api: + insecure: true + +entryPoints: + web: + address: ":80" + + websecure: + address: ":443" + + # ssh: + # address: ":222" + +providers: + docker: + endpoint: "unix:///var/run/docker.sock" + +certificatesResolver: + letsEncrypt: + acme: + email: wteckmeng@outlook.com + storage: /tls/acme.json + httpChallenge: + entryPoint: web \ No newline at end of file