Project

General

Profile

Redmine » History » Version 3

Redmine Admin, 10/31/2026 07:01 PM
deploy-publish.sh

1 3 Redmine Admin
*Chapter 3 of the dmz-web documentation · headings are numbered like the cheat sheets · index: [[Wiki]]*
2
3 2 Redmine Admin
Containers `site-redmine` (Redmine 6, Puma on :3000) + `db-redmine`
4 1 Redmine Admin
(PostgreSQL) on `net-redmine`. NPM forwards to `site-redmine:3000`.
5
6 2 Redmine Admin
Persistence: `files` is a named volume; **config, plugins, public/images,
7
public/assets/plugin_assets are host bind mounts under `~/redmine_data/`**
8
(added after a container recreate wiped a `podman cp`'d plugin). Anything
9
dropped into the container with `podman cp` outside those paths does NOT
10 1 Redmine Admin
survive a recreate.
11
12 2 Redmine Admin
```bash
13 1 Redmine Admin
# reload Puma after changing a plugin / View Customize / logo (no restart needed)
14
podman kill -s USR2 site-redmine
15
16
# Rails console / rake inside the container
17
podman exec -it site-redmine bundle exec rails console -e production
18
podman exec -it site-redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production
19
20
# PostgreSQL
21
podman exec -it db-redmine psql -U redmine redmine
22
podman exec db-redmine pg_dump -U redmine redmine > ~/tmp/redmine-$(date +%F).sql
23
```
24
25 2 Redmine Admin
Mail: no SMTP AUTH (M365 Security Defaults stay on) — Exchange Online
26
IP-based inbound connector relay, port 25 to the tenant MX endpoint
27
(`mdsdefense-com.mail.protection.outlook.com`), STARTTLS, no credentials,
28
sender `sysadmin@mdsdefense.com`. Redmine's settings:
29
`grep -nE 'address|port|domain|starttls' ~/redmine_data/config/configuration.yml`.
30
Why no password is needed: Exchange Online only accepts mail from IP addresses
31
it has been told about (the IP-based connector), and this host's public egress IP
32
is on that list. Every other container on this host leaves through the same IP,
33
so it can use the same relay the same way (Snipe-IT, below). The one exception is
34
a container on a network with `Internal=true`: it has no internet access at all,
35
so it cannot reach the relay.
36 1 Redmine Admin
37 2 Redmine Admin
Git repositories and the commit/push procedure: [[Git Workflow]].
38 1 Redmine Admin
39
40
---
41 2 Redmine Admin
_Source: `dmz-web-podman-cheatsheet.md` v1.2 in the `dmz-web-deploy` repo ([[Releases]]). Edit the wiki and the repo copy together._