A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
docker pull fatedier/frp:latest
docker run -d --name frp --restart always fatedier/frp:latest
podman run -d --name frp --restart always fatedier/frp:latest
skopeo inspect docker://docker.io/fatedier/frp:latest
oras pull fatedier/frp:latest
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"]