File size: 1,500 Bytes
816d3c3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 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"]