Archived all completed OpenSpec changes, created .gitignore, implemented Gitea CI/CD, updated frontend with professional styling and clickable IPs, and added application documentation.

This commit is contained in:
2026-03-27 13:09:48 +01:00
parent cc59a91fea
commit 1873ae0e1f
25 changed files with 262 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
## ADDED Requirements
### Requirement: Discover running Docker containers
The system SHALL discover all running Docker containers on the host.
#### Scenario: Containers are running
- **WHEN** the service starts
- **THEN** the system has a list of all running containers.
### Requirement: Identify services with exposed ports
The system SHALL identify which of the running containers have exposed ports.
#### Scenario: Container with exposed ports
- **WHEN** a container is running with a port mapping
- **THEN** the system identifies the container and its exposed port.
#### Scenario: Container without exposed ports
- **WHEN** a container is running without any port mappings
- **THEN** the system ignores this container.
### Requirement: Prioritize Traefik services
The system SHALL identify services that are managed by Traefik and extract the public-facing URL.
#### Scenario: Traefik service
- **WHEN** a container has Traefik labels (e.g., `traefik.http.routers.my-service.rule`)
- **THEN** the system SHALL extract the router rule and present it as the primary URL for the service.

View File

@@ -0,0 +1,26 @@
## ADDED Requirements
### Requirement: Display services in a card layout
The frontend SHALL display each discovered service as a card.
#### Scenario: Services are discovered
- **WHEN** the frontend receives a list of services from the backend
- **THEN** it SHALL render a card for each service.
### Requirement: Show service details on each card
Each service card SHALL display the service name, the exposed port, and the URL to access it.
#### Scenario: Displaying a service
- **WHEN** a service is displayed
- **THEN** the card SHALL show the service name, port, and URL.
### Requirement: Real-time updates
The frontend SHALL update in near real-time when services are started or stopped.
#### Scenario: A new service is started
- **WHEN** a new service is started on the host
- **THEN** a new card for that service SHALL appear in the frontend without requiring a page refresh.
#### Scenario: A service is stopped
- **WHEN** a service is stopped on the host
- **THEN** the corresponding card SHALL be removed from the frontend without requiring a page refresh.