first commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
FROM alpine:3.19
|
||||
|
||||
LABEL maintainer="mGuard VPN Manager"
|
||||
LABEL description="OpenVPN multi-server container with dynamic configuration"
|
||||
|
||||
# Install packages
|
||||
RUN apk add --no-cache \
|
||||
openvpn \
|
||||
bash \
|
||||
curl \
|
||||
iptables \
|
||||
ip6tables \
|
||||
supervisor \
|
||||
jq
|
||||
|
||||
# Create directories
|
||||
RUN mkdir -p \
|
||||
/etc/openvpn/servers \
|
||||
/etc/openvpn/scripts \
|
||||
/etc/openvpn/supervisor.d \
|
||||
/var/log/openvpn \
|
||||
/var/run/openvpn
|
||||
|
||||
# Copy configuration and scripts
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY scripts/ /etc/openvpn/scripts/
|
||||
|
||||
# Make scripts executable and create log file with proper permissions
|
||||
RUN chmod +x /entrypoint.sh /etc/openvpn/scripts/*.sh && \
|
||||
touch /var/log/openvpn/clients.log && \
|
||||
chmod 666 /var/log/openvpn/clients.log
|
||||
|
||||
# Expose common VPN ports (actual ports depend on server configs)
|
||||
# These are just defaults, actual binding happens via host network
|
||||
EXPOSE 1194/udp
|
||||
EXPOSE 1194/tcp
|
||||
EXPOSE 443/tcp
|
||||
|
||||
# Volumes for persistent data
|
||||
VOLUME ["/etc/openvpn", "/var/log/openvpn"]
|
||||
|
||||
# Environment variables
|
||||
ENV API_URL="http://127.0.0.1:8000/api/internal"
|
||||
ENV API_TIMEOUT="120"
|
||||
ENV API_RETRY_INTERVAL="5"
|
||||
ENV POLL_INTERVAL="30"
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
Reference in New Issue
Block a user