updating the documentation of the SilverLinux Insftracture
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
services:
|
||||
openproject:
|
||||
image: openproject/openproject:17
|
||||
container_name: openproject
|
||||
restart: unless-stopped
|
||||
|
||||
env_file:
|
||||
- /srv/secrets/company.env
|
||||
|
||||
environment:
|
||||
SECRET_KEY_BASE: ${OPENPROJECT_SECRET_KEY_BASE}
|
||||
OPENPROJECT_HOST__NAME: team.silveressence.net
|
||||
OPENPROJECT_HTTPS: "true"
|
||||
|
||||
DATABASE_URL: postgres://openproject:${POSTGRES_OPENPROJECT_PASSWORD}@postgres:5432/openproject
|
||||
|
||||
OPENPROJECT_EMAIL__DELIVERY__METHOD: smtp
|
||||
OPENPROJECT_SMTP__ADDRESS: ${SMTP_HOST}
|
||||
OPENPROJECT_SMTP__PORT: "${SMTP_PORT}"
|
||||
OPENPROJECT_SMTP__DOMAIN: silveressence.net
|
||||
OPENPROJECT_SMTP__AUTHENTICATION: login
|
||||
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true"
|
||||
OPENPROJECT_SMTP__USER__NAME: ${SMTP_USERNAME}
|
||||
OPENPROJECT_SMTP__PASSWORD: ${SMTP_PASSWORD}
|
||||
|
||||
volumes:
|
||||
- /srv/docker/openproject/assets:/var/openproject/assets
|
||||
|
||||
ports:
|
||||
- "8082:80"
|
||||
|
||||
networks:
|
||||
- internal
|
||||
|
||||
networks:
|
||||
internal:
|
||||
external: true
|
||||
@@ -0,0 +1,269 @@
|
||||
# OpenProject
|
||||
|
||||
## Overview
|
||||
|
||||
OpenProject is the project management and collaboration platform used by Silver Solutions.
|
||||
|
||||
It provides:
|
||||
|
||||
* Project management
|
||||
* Task tracking
|
||||
* Work packages
|
||||
* Time tracking
|
||||
* Roadmaps
|
||||
* Team collaboration
|
||||
* Document management
|
||||
|
||||
OpenProject replaces the previously planned Plane.so deployment.
|
||||
|
||||
---
|
||||
|
||||
## Service Information
|
||||
|
||||
### URL
|
||||
|
||||
```text
|
||||
https://team.silveressence.net
|
||||
```
|
||||
|
||||
### Container Name
|
||||
|
||||
```text
|
||||
openproject
|
||||
```
|
||||
|
||||
### Image
|
||||
|
||||
```text
|
||||
openproject/openproject:17
|
||||
```
|
||||
|
||||
### Docker Network
|
||||
|
||||
```text
|
||||
internal
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
|
||||
OpenProject is used for:
|
||||
|
||||
* Project planning
|
||||
* Task management
|
||||
* Development tracking
|
||||
* Internal collaboration
|
||||
* Customer project management
|
||||
* Team planning
|
||||
|
||||
---
|
||||
|
||||
## Database
|
||||
|
||||
Database:
|
||||
|
||||
```text
|
||||
openproject
|
||||
```
|
||||
|
||||
Database User:
|
||||
|
||||
```text
|
||||
openproject
|
||||
```
|
||||
|
||||
Database Host:
|
||||
|
||||
```text
|
||||
postgres
|
||||
```
|
||||
|
||||
Database access is provided through the internal Docker network.
|
||||
|
||||
---
|
||||
|
||||
## Email Configuration
|
||||
|
||||
Sender Address:
|
||||
|
||||
```text
|
||||
noreply@silveressence.net
|
||||
```
|
||||
|
||||
Purpose:
|
||||
|
||||
* Password reset emails
|
||||
* User notifications
|
||||
* Work package notifications
|
||||
* Mention notifications
|
||||
* Project updates
|
||||
|
||||
SMTP credentials are stored in:
|
||||
|
||||
```text
|
||||
/srv/secrets/company.env
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Data Storage
|
||||
|
||||
Assets Location:
|
||||
|
||||
```text
|
||||
/srv/docker/openproject/assets
|
||||
```
|
||||
|
||||
Contains:
|
||||
|
||||
* Attachments
|
||||
* Uploaded files
|
||||
* Application assets
|
||||
* User generated content
|
||||
|
||||
This directory must be included in backups.
|
||||
|
||||
---
|
||||
|
||||
## Secrets
|
||||
|
||||
The following values are stored in:
|
||||
|
||||
```text
|
||||
/srv/secrets/company.env
|
||||
```
|
||||
|
||||
Variables:
|
||||
|
||||
```text
|
||||
POSTGRES_OPENPROJECT_PASSWORD
|
||||
OPENPROJECT_SECRET_KEY_BASE
|
||||
|
||||
SMTP_HOST
|
||||
SMTP_PORT
|
||||
SMTP_USERNAME
|
||||
SMTP_PASSWORD
|
||||
```
|
||||
|
||||
Secrets must never be committed to Git.
|
||||
|
||||
---
|
||||
|
||||
## Authentication
|
||||
|
||||
Current Authentication:
|
||||
|
||||
* Local accounts
|
||||
|
||||
Future Considerations:
|
||||
|
||||
* Google OAuth2
|
||||
* GitHub OAuth2
|
||||
* Microsoft Entra ID
|
||||
|
||||
---
|
||||
|
||||
## Docker Configuration
|
||||
|
||||
Volume Mapping:
|
||||
|
||||
```text
|
||||
/srv/docker/openproject/assets:/var/openproject/assets
|
||||
```
|
||||
|
||||
Port Mapping:
|
||||
|
||||
```text
|
||||
8082:80
|
||||
```
|
||||
|
||||
Network:
|
||||
|
||||
```text
|
||||
internal
|
||||
```
|
||||
|
||||
OpenProject should not be exposed directly to the internet.
|
||||
|
||||
Access should be routed through Nginx Proxy Manager.
|
||||
|
||||
---
|
||||
|
||||
## Administration
|
||||
|
||||
View Logs:
|
||||
|
||||
```bash
|
||||
docker logs openproject
|
||||
```
|
||||
|
||||
Restart Service:
|
||||
|
||||
```bash
|
||||
docker restart openproject
|
||||
```
|
||||
|
||||
Open Shell:
|
||||
|
||||
```bash
|
||||
docker exec -it openproject bash
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Backup Requirements
|
||||
|
||||
The following items must be backed up:
|
||||
|
||||
### Database
|
||||
|
||||
```text
|
||||
openproject
|
||||
```
|
||||
|
||||
### Assets
|
||||
|
||||
```text
|
||||
/srv/docker/openproject/assets
|
||||
```
|
||||
|
||||
### Secrets
|
||||
|
||||
```text
|
||||
/srv/secrets/company.env
|
||||
```
|
||||
|
||||
Without these items, a complete restoration is not possible.
|
||||
|
||||
---
|
||||
|
||||
## Recovery Checklist
|
||||
|
||||
To restore OpenProject:
|
||||
|
||||
1. Restore PostgreSQL database.
|
||||
2. Restore OpenProject assets directory.
|
||||
3. Restore company.env secrets.
|
||||
4. Deploy Docker Compose stack.
|
||||
5. Verify SMTP configuration.
|
||||
6. Verify access through Nginx Proxy Manager.
|
||||
|
||||
---
|
||||
|
||||
## Related Services
|
||||
|
||||
* PostgreSQL
|
||||
* Nginx Proxy Manager
|
||||
* Gitea
|
||||
* Portainer
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
|
||||
* docs/server.md
|
||||
* docs/security.md
|
||||
* docs/secrets.md
|
||||
* docs/backups.md
|
||||
* postgres/README.md
|
||||
@@ -0,0 +1,37 @@
|
||||
services:
|
||||
openproject:
|
||||
image: openproject/openproject:17
|
||||
container_name: openproject
|
||||
restart: unless-stopped
|
||||
|
||||
env_file:
|
||||
- /srv/secrets/company.env
|
||||
|
||||
environment:
|
||||
SECRET_KEY_BASE: ${OPENPROJECT_SECRET_KEY_BASE}
|
||||
OPENPROJECT_HOST__NAME: team.silveressence.net
|
||||
OPENPROJECT_HTTPS: "true"
|
||||
|
||||
DATABASE_URL: postgres://openproject:${POSTGRES_OPENPROJECT_PASSWORD}@postgres:5432/openproject
|
||||
|
||||
OPENPROJECT_EMAIL__DELIVERY__METHOD: smtp
|
||||
OPENPROJECT_SMTP__ADDRESS: ${SMTP_HOST}
|
||||
OPENPROJECT_SMTP__PORT: "${SMTP_PORT}"
|
||||
OPENPROJECT_SMTP__DOMAIN: silveressence.net
|
||||
OPENPROJECT_SMTP__AUTHENTICATION: login
|
||||
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true"
|
||||
OPENPROJECT_SMTP__USER__NAME: ${SMTP_USERNAME}
|
||||
OPENPROJECT_SMTP__PASSWORD: ${SMTP_PASSWORD}
|
||||
|
||||
volumes:
|
||||
- /srv/docker/openproject/assets:/var/openproject/assets
|
||||
|
||||
ports:
|
||||
- "8082:80"
|
||||
|
||||
networks:
|
||||
- internal
|
||||
|
||||
networks:
|
||||
internal:
|
||||
external: true
|
||||
Reference in New Issue
Block a user