FROM golang:1.22 AS build

ENV SOURCE_PATH ${GOPATH}/src/0xacab.org/leap/obfsvpn
COPY . ${SOURCE_PATH}/
WORKDIR ${SOURCE_PATH}
RUN cd cmd/server && make build && cp server /obfsvpn-server && cd ../..
RUN cd control && CGO_ENABLED=0 go build && cp control /control && cd ..


FROM alpine:3

ENV APP_NAME obfsvpn
ENV APP_INSTALL_PATH /opt/${APP_NAME}
ENV OBFS4_DATA_DIR ${APP_INSTALL_PATH}/data

ENV OBFS4_HOST 0.0.0.0
ENV OBFS4_PORT 4430
ENV CONTROL_PORT 9090

ENV OBFSVPN_STATE ${OBFS4_DATA_DIR}
ENV OBFS4_KEY_FILE ${OBFS4_DATA_DIR}/obfs4.json
ENV OBFSVPN_PORT ${OBFS4_PORT}

WORKDIR ${APP_INSTALL_PATH}

RUN apk add --no-cache dumb-init iptables iproute2 tcpdump netcat-openbsd bind-tools bash coreutils

COPY --from=build /obfsvpn-server .
COPY --from=build /control .

COPY images/obfsvpn/scripts .
COPY server/test_data ${OBFS4_DATA_DIR}

VOLUME [ "/opt/Dockovpn_data" ]

ENTRYPOINT [ "dumb-init" ]
