Skip to content

Instantly share code, notes, and snippets.

@sl45sms
Created November 22, 2024 08:44
Show Gist options
  • Save sl45sms/f06673413cadc83035a07be50fde87c7 to your computer and use it in GitHub Desktop.
Save sl45sms/f06673413cadc83035a07be50fde87c7 to your computer and use it in GitHub Desktop.
aade39afpa

aade39afpa

Το ελεύθερο πρόγραμμα της υπηρεσίας 39α της ΑΑΔΕ μέσω web/VNC σαν Docker container.

Γιατί;

Επειδή είναι εξαιρετικά δύσκολο να εγκατασταθεί σε Mac ή ακόμα και σε Linux χωρίς να κάνεις άνω κάτω το σύστημά σου με τις εκδόσεις της Java.

Πως;

Κατεβασε πρώτα απο την Oracle to jdk-8u202-linux-x64.tar.gz και βάλτο στον φάκελο του Dockerfile. Java SE Development Kit 8u202

κάνε build

docker build -t 39a.skarvelis.gr:latest --build-arg VNC_PW=yourpassword .

και τρέξε

docker run --rm -p 5900:5900 -p 8680:8680 39a.skarvelis.gr:latest

Πως να συνδεθείς

Ανοίξε τον VNC client σου και σύνδεσε στο localhost:5900 με τον κωδικό yourpassword ή στην web εφαρμογή (noVNC) στο localhost:8680 με τον κωδικό yourpassword

Πως να αλλάξεις τον κωδικό

Απλά αλλάξε τον κωδικό στο docker build παραπάνω. ή βαλε -e VNC_PW=otherpassword στο docker run.

# Use an official Ubuntu runtime as a parent image
FROM ubuntu:20.04
# Set environment variable to avoid interactive prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive
ARG VNC_PW
ENV VNC_PW=${VNC_PW}
# Install necessary packages
RUN apt-get update && \
apt-get install -y \
mc \
wget \
xvfb \
x11vnc \
fluxbox \
websockify \
supervisor \
python \
tzdata \
libgtk-3-0 \
libglu1-mesa \
libgl1-mesa-glx \
libpulse0 \
fonts-dejavu \
&& rm -rf /var/lib/apt/lists/*
# install Oracle JDK 1.8
COPY jdk-8u202-linux-x64.tar.gz jdk-8u202-linux-x64.tar.gz
RUN tar -xzf jdk-8u202-linux-x64.tar.gz && \
mv jdk1.8.0_202 /usr/local/ && \
ln -s /usr/local/jdk1.8.0_202 /usr/local/java && \
rm jdk-8u202-linux-x64.tar.gz
# Set environment variables for Oracle JDK
ENV JAVA_HOME /usr/local/java
ENV PATH $JAVA_HOME/bin:$PATH
# Install noVNC
RUN mkdir -p /opt/novnc/utils/websockify && \
wget -qO- https://github.com/novnc/noVNC/archive/v1.2.0.tar.gz | tar xz --strip 1 -C /opt/novnc && \
wget -qO- https://github.com/novnc/websockify/archive/v0.9.0.tar.gz | tar xz --strip 1 -C /opt/novnc/utils/websockify
# Copy the JAR file into the container
COPY aade39afpa.jar /opt/app/aade39afpa.jar
# Set VNC password
RUN mkdir -p ~/.vnc && \
x11vnc -storepasswd yourpassword ~/.vnc/passwd
# Disable IPv6
RUN echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/99-sysctl.conf && \
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/99-sysctl.conf && \
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.d/99-sysctl.conf
# Create a script to start the application
RUN echo '#!/bin/bash\n\
export DISPLAY=:1\n\
Xvfb :1 -screen 0 1920x1080x16 &\n\
fluxbox &\n\
x11vnc -display :1 -forever -usepw -passwd $VNC_PW &\n\
/opt/novnc/utils/launch.sh --vnc localhost:5900 --listen 8680 &\n\
java -cp /opt/app/aade39afpa.jar aade.fpa.ui.main.Main' > /opt/app/start.sh && \
chmod +x /opt/app/start.sh
# Create a supervisor configuration file
RUN echo '[supervisord]\n\
nodaemon=true\n\
[program:app]\n\
command=/opt/app/start.sh\n\
stdout_logfile=/var/log/app.log\n\
stderr_logfile=/var/log/app_err.log' > /etc/supervisor/conf.d/supervisord.conf
# Expose the ports for VNC and noVNC
EXPOSE 5900 8680
# Start supervisor
CMD ["/usr/bin/supervisord"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment