# Use Ubuntu 22.04 base image FROM ubuntu:22.04 # Set environment variables for configuration ENV PANEL_PORT=7860 \ ADMIN_USERNAME=admin \ ADMIN_PASSWORD=changeme \ PUFFER_DATA_DIR=/workspace/pufferpanel_data # Install dependencies and clean up RUN apt-get update && \ apt-get install -y wget curl sqlite3 && \ rm -rf /var/lib/apt/lists/* # Download and install PufferPanel RUN wget -q https://github.com/pufferpanel/pufferpanel/releases/download/v3.0.0-rc.14/pufferpanel_3.0.0-rc.14_amd64.deb && \ dpkg -i pufferpanel_3.0.0-rc.14_amd64.deb || apt-get install -f -y && \ rm pufferpanel_3.0.0-rc.14_amd64.deb # Create persistent storage directories RUN mkdir -p ${PUFFER_DATA_DIR}/servers \ ${PUFFER_DATA_DIR}/modules \ ${PUFFER_DATA_DIR}/cache # Create config file from environment variables RUN echo '{ \ "web": { \ "host": "0.0.0.0", \ "port": '${PANEL_PORT}' \ }, \ "ssl": { \ "enabled": false, \ "redirect": false \ }, \ "database": { \ "url": "sqlite:'${PUFFER_DATA_DIR}'/data.db", \ "type": "sqlite" \ }, \ "data": { \ "servers": "'${PUFFER_DATA_DIR}'/servers", \ "modules": "'${PUFFER_DATA_DIR}'/modules", \ "cache": "'${PUFFER_DATA_DIR}'/cache" \ } \ }' > /etc/pufferpanel/config.json # Expose the panel port EXPOSE ${PANEL_PORT} # Start script to create admin user and run panel COPY start.sh /start.sh RUN chmod +x /start.sh CMD ["/start.sh"]