Browse Source

Initial version

main
Roberto Alsina 2 months ago
parent
commit
b70a6d0324
  1. 28
      Dockerfile
  2. 40
      fly.toml
  3. 23
      nginx.conf
  4. 5
      start.sh

28
Dockerfile

@ -0,0 +1,28 @@
FROM alpine:latest as builder
WORKDIR /app
COPY . ./
# This is where one could build the application code as well.
FROM alpine:latest as tailscale
WORKDIR /app
COPY . ./
ENV TSFILE=tailscale_1.24.2_amd64.tgz
RUN wget https://pkgs.tailscale.com/stable/${TSFILE} && tar xzf ${TSFILE} --strip-components=1
COPY . ./
# https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds
FROM alpine:latest
RUN apk update && apk add --no-cache ca-certificates iptables ip6tables nginx
# Copy binary to production image
COPY --from=builder /app/start.sh /app/start.sh
COPY --from=tailscale /app/tailscaled /app/tailscaled
COPY --from=tailscale /app/tailscale /app/tailscale
RUN mkdir -p /var/run/tailscale /var/cache/tailscale /var/lib/tailscale
COPY nginx.conf /etc/nginx/http.d/nginx.conf
# Run on container startup.
EXPOSE 8080
CMD ["/app/start.sh"]

40
fly.toml

@ -0,0 +1,40 @@
# fly.toml file generated for white-wave-7409 on 2022-05-02T16:24:11-03:00
app = "white-wave-7409"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[deploy]
strategy = "rolling"
[env]
[experimental]
allowed_public_ports = [8080]
auto_rollback = true
[[services]]
internal_port = 8080
protocol = "tcp"
[services.concurrency]
hard_limit = 25
soft_limit = 20
type = "connections"
[[services.ports]]
force_https = true
handlers = ["http"]
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = "443"
[[services.tcp_checks]]
grace_period = "1s"
interval = "15s"
restart_limit = 0
timeout = "2s"

23
nginx.conf

@ -0,0 +1,23 @@
server {
listen 8080;
listen [::]:8080;
server_name home.ralsina.me;
location / {
proxy_pass http://pinky.ralsina.github.beta.tailscale.net:8080;
proxy_set_header X-Forwarded-Host $http_host;
}
}
server {
listen 8080;
listen [::]:8080;
server_name git.ralsina.me;
location / {
proxy_pass http://pinky.ralsina.github.beta.tailscale.net:3000;
proxy_set_header X-Forwarded-Host $http_host;
}
}

5
start.sh

@ -0,0 +1,5 @@
#!/bin/sh
/app/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/var/run/tailscale/tailscaled.sock &
/app/tailscale up --authkey=${TAILSCALE_AUTHKEY} --hostname=reverseproxy
/usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;'
Loading…
Cancel
Save