frp Docker & Self-Hosted Deployment

GitHub

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

108,770 stars Go Go 1 file ยท ~15,561 tokens #expose#firewall#frp#go#http-proxy#nat#p2p#proxy
1. Pull Image (DOCKERHUB) docker pull fatedier/frp:latest
2. Docker Run (1-Click Launch) docker run -d --name frp --restart always fatedier/frp:latest
3. Podman Run podman run -d --name frp --restart always fatedier/frp:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/fatedier/frp:latest
5. ORAS Pull (OCI Artifact) oras pull fatedier/frp:latest
dockerfiles/Dockerfile-for-frpc
FROM node:22 AS web-builder

WORKDIR /web
COPY web/package.json web/package-lock.json ./
COPY web/shared/package.json ./shared/package.json
COPY web/frpc/package.json ./frpc/package.json
COPY web/frps/package.json ./frps/package.json
RUN npm ci
COPY web/shared/ ./shared/
COPY web/frpc/ ./frpc/
RUN npm run build --workspace frpc

FROM golang:1.26 AS building

COPY . /building
COPY --from=web-builder /web/frpc/dist /building/web/frpc/dist
WORKDIR /building

RUN env CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -tags frpc -o bin/frpc ./cmd/frpc

FROM alpine:3

RUN apk add --no-cache tzdata

COPY --from=building /building/bin/frpc /usr/bin/frpc

ENTRYPOINT ["/usr/bin/frpc"]