Techbitforge commited on
Commit
816d3c3
·
verified ·
1 Parent(s): fd7a2cd

Create dockerfile

Browse files
Files changed (1) hide show
  1. dockerfile +53 -0
dockerfile ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use Ubuntu 22.04 base image
2
+ FROM ubuntu:22.04
3
+
4
+ # Set environment variables for configuration
5
+ ENV PANEL_PORT=7860 \
6
+ ADMIN_USERNAME=admin \
7
+ ADMIN_PASSWORD=changeme \
8
+ PUFFER_DATA_DIR=/workspace/pufferpanel_data
9
+
10
+ # Install dependencies and clean up
11
+ RUN apt-get update && \
12
+ apt-get install -y wget curl sqlite3 && \
13
+ rm -rf /var/lib/apt/lists/*
14
+
15
+ # Download and install PufferPanel
16
+ RUN wget -q https://github.com/pufferpanel/pufferpanel/releases/download/v3.0.0-rc.14/pufferpanel_3.0.0-rc.14_amd64.deb && \
17
+ dpkg -i pufferpanel_3.0.0-rc.14_amd64.deb || apt-get install -f -y && \
18
+ rm pufferpanel_3.0.0-rc.14_amd64.deb
19
+
20
+ # Create persistent storage directories
21
+ RUN mkdir -p ${PUFFER_DATA_DIR}/servers \
22
+ ${PUFFER_DATA_DIR}/modules \
23
+ ${PUFFER_DATA_DIR}/cache
24
+
25
+ # Create config file from environment variables
26
+ RUN echo '{ \
27
+ "web": { \
28
+ "host": "0.0.0.0", \
29
+ "port": '${PANEL_PORT}' \
30
+ }, \
31
+ "ssl": { \
32
+ "enabled": false, \
33
+ "redirect": false \
34
+ }, \
35
+ "database": { \
36
+ "url": "sqlite:'${PUFFER_DATA_DIR}'/data.db", \
37
+ "type": "sqlite" \
38
+ }, \
39
+ "data": { \
40
+ "servers": "'${PUFFER_DATA_DIR}'/servers", \
41
+ "modules": "'${PUFFER_DATA_DIR}'/modules", \
42
+ "cache": "'${PUFFER_DATA_DIR}'/cache" \
43
+ } \
44
+ }' > /etc/pufferpanel/config.json
45
+
46
+ # Expose the panel port
47
+ EXPOSE ${PANEL_PORT}
48
+
49
+ # Start script to create admin user and run panel
50
+ COPY start.sh /start.sh
51
+ RUN chmod +x /start.sh
52
+
53
+ CMD ["/start.sh"]