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:
@@ -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.
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user