20 Commits

Author SHA1 Message Date
me 72d812b106 Rename the Dockerfile version. 2026-06-19 15:01:10 -07:00
me c695bb1d72 Add a Docker Hub example for Prosody. 2026-06-19 15:00:03 -07:00
me 49238da275 Change certs to be a named volume too for better permission playability. 2026-06-19 09:19:20 -07:00
me 73583a0f62 Chain the initial start commands rather than forking them all. 2026-06-19 09:13:53 -07:00
me 01b6ceac22 Start prosody! 2026-06-19 09:10:59 -07:00
me 06fd6be4d3 Try using a named volume on Prosody to see if it helps with permissions. 2026-06-19 09:06:26 -07:00
me e8c0ee9b47 Add explicit files to follow. 2026-06-19 08:41:39 -07:00
me 5df435ba86 Move cert import since volumes are not mounted during build. 2026-06-19 08:39:44 -07:00
me a72eb09c1f Change the path for the certs. 2026-06-19 08:37:01 -07:00
me 24dba3e2ed Check for certs and reload before starting the container. 2026-06-19 08:36:49 -07:00
me 730581c16d Move the certs to a different directory. 2026-06-19 08:35:54 -07:00
me c0adab4830 Hide the example config so that prosodyctl check does not complain. 2026-06-19 08:12:33 -07:00
me 8c262ce6eb Change where the Prosody file gets copied. 2026-06-18 19:13:44 -07:00
me 64b796c523 Add vim for Prosody. 2026-06-18 18:16:16 -07:00
me 600287ee93 Remove host config and add gitignore change meant for last commit. 2026-06-18 18:15:35 -07:00
me 7e5ff6fcdc Ignore custom Prosody hosts. 2026-06-18 18:12:54 -07:00
me 971dc0c086 Edit the cert paths based on how the drives are being mounted. 2026-06-18 18:04:06 -07:00
me 7106a6774c Have Prosody access LetsEncrypt certs from Reverse Proxy. 2026-06-18 17:57:57 -07:00
me e1a57645b7 Add functionality to copy the config files to the container. 2026-06-18 17:46:16 -07:00
me be1affb0b2 Refactor the Prosody config files. 2026-06-18 17:45:57 -07:00
10 changed files with 85 additions and 20 deletions
+4
View File
@@ -62,3 +62,7 @@ PROD-*
Dev-* Dev-*
dev-* dev-*
DEV-* DEV-*
# Ignore custom Prosody hosts.
Config/Prosody/conf.avail/*
+15 -2
View File
@@ -9,10 +9,23 @@ FROM debian:trixie-slim
# System Dependencies # System Dependencies
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y prosody \ apt-get install -y prosody \
bash sudo htop bash sudo htop \
vim
## Configuration Files ##
# Clear old configurations.
RUN rm -rfv /etc/prosody/conf.d/*
# Add all the configuration files to the environment.
COPY ./etc/*.lua /etc/prosody/
COPY ./etc/conf.avail/* /etc/prosody/conf.d/
RUN rm -rfv /etc/prosody/README*
## Main ## ## Main ##
# Install + Run Website # Install + Run Website
WORKDIR /root WORKDIR /root
USER root USER root
CMD tail -F /var/log/TBD CMD prosodyctl cert import /etc/letsencrypt/live && \
service prosody start && \
prosodyctl reload && \
tail -F /var/log/prosody/prosody.log & \
tail -F /var/log/prosody/prosody.err
@@ -0,0 +1,37 @@
# Example docker-compose.yml for Prosody
# Documentation is available at:
# https://prosody.im/doc/docker
# Edit this file as necessary. Run 'docker compose up -d' to apply changes.
# Run 'docker compose up -d --pull' to check for and apply any Prosody updates.
services:
prosody:
# Change 13.0 to the branch you want to use
image: prosodyim/prosody:13.0
# Always check for updates when starting
pull_policy: always
# Automatically start Prosody, e.g. when your system starts, if it was
# running previously
restart: unless-stopped
# Network ports to expose
ports:
# Client connections
- 5222:5222
# Server-to-server connections
- 5269:5269
# Directories where data will be stored
volumes:
# This will use a 'data' directory in the same directory as the
# docker-compose.yml. Make this directory before you start Prosody,
# and ensure it is owned by a non-root user. The ownership of the
# directory will control the default user id that Prosody runs as.
- ./data:/var/lib/prosody
# Set environment variables. See the documentation for all possible options.
environment:
PROSODY_VIRTUAL_HOSTS: localhost
@@ -1,6 +1,20 @@
# 2026-06-11 Hyperling # 2026-06-11 Hyperling
# Configuration for running a Prosody XMPP server. # Configuration for running a Prosody XMPP server.
volumes:
prosody_data:
driver: local
driver_opts:
type: none
device: ../../Volumes/Prosody/data
o: bind
prosody_certs:
driver: local
driver_opts:
type: none
device: ../../Volumes/ReverseProxy/letsencrypt/live
o: bind
services: services:
app: app:
container_name: prosody container_name: prosody
@@ -23,8 +37,8 @@ services:
# retries: 2 # retries: 2
# start_period: 30s # start_period: 30s
volumes: volumes:
- ../../Volumes/Prosody/prosody:/root/share/ - prosody_data:/var/lib/prosody/
# - ../../Volumes/ReverseProxy/letsencrypt/certs:/etc/prosody/certs - prosody_certs:/etc/letsencrypt/live
deploy: deploy:
mode: global mode: global
resources: resources:
@@ -1,9 +0,0 @@
Prosody configuration directory
===============================
The configuration file /etc/prosody/prosody.cfg.lua should contain
only global settings.
Per-host configuration files should be placed in /etc/prosody/conf.avail/,
and the active ones should be linked in /etc/prosody/conf.d/
+7
View File
@@ -0,0 +1,7 @@
# Config/Prosody/etc
These files will be copied to /etc/prosody/* on the container.
Default example files are provided in the conf.avail directory and should not be modified.
Rather, copy the files named *.lua.dist to be renamed without .dist, then edit the .lua files as needed.
@@ -7,10 +7,10 @@ VirtualHost "example.com"
-- set in the global section (if any). -- set in the global section (if any).
-- Note that old-style SSL on port 5223 only supports one certificate, and will always -- Note that old-style SSL on port 5223 only supports one certificate, and will always
-- use the global one. -- use the global one.
ssl = { --ssl = {
key = "/etc/prosody/certs/example.com.key"; -- key = "/etc/letsencrypt/live/example.com/privkey.pem";
certificate = "/etc/prosody/certs/example.com.crt"; -- certificate = "/etc/letsencrypt/live/example.com/fullchain.pem";
} -- }
------ Components ------ ------ Components ------
-- You can specify components to add hosts that provide special services, -- You can specify components to add hosts that provide special services,
@@ -18,7 +18,7 @@ VirtualHost "example.com"
-- For more information on components, see http://prosody.im/doc/components -- For more information on components, see http://prosody.im/doc/components
-- Set up a MUC (multi-user chat) room server on conference.example.com: -- Set up a MUC (multi-user chat) room server on conference.example.com:
Component "conference.example.com" "muc" --Component "conference.example.com" "muc"
-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers: -- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
--Component "proxy.example.com" "proxy65" --Component "proxy.example.com" "proxy65"
@@ -26,4 +26,3 @@ Component "conference.example.com" "muc"
---Set up an external component (default component port is 5347) ---Set up an external component (default component port is 5347)
--Component "gateway.example.com" --Component "gateway.example.com"
-- component_secret = "password" -- component_secret = "password"