feat: add Control Room with containers and stacks management
- Add Control Room page with stacks sidebar and containers list - Implement container actions (start/stop/restart) with snackbars - Add container logs viewer dialog - Add search/filter for both stacks and containers lists - Add external links for Portainer and Netdata (url_launcher) - Add VS Code launch configuration for Flutter web debugging 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
dd6bcbdbda
commit
3b89ed8c18
@@ -0,0 +1,66 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'stack.freezed.dart';
|
||||
|
||||
/// Container orchestration stack (Docker Compose stack).
|
||||
@freezed
|
||||
class Stack with _$Stack {
|
||||
const factory Stack({
|
||||
/// Unique stack identifier.
|
||||
required String id,
|
||||
|
||||
/// Stack name.
|
||||
required String name,
|
||||
|
||||
/// Stack type (compose, swarm, kubernetes).
|
||||
@Default(StackType.compose) StackType type,
|
||||
|
||||
/// Current stack status.
|
||||
@Default(StackStatus.unknown) StackStatus status,
|
||||
|
||||
/// Number of containers in the stack.
|
||||
@Default(0) int containerCount,
|
||||
|
||||
/// Number of running containers.
|
||||
@Default(0) int runningCount,
|
||||
|
||||
/// Path to the compose file (if applicable).
|
||||
String? composeFile,
|
||||
|
||||
/// Environment name (e.g., production, staging).
|
||||
String? environment,
|
||||
|
||||
/// When the stack was created.
|
||||
DateTime? createdAt,
|
||||
|
||||
/// When the stack was last updated.
|
||||
DateTime? updatedAt,
|
||||
}) = _Stack;
|
||||
|
||||
const Stack._();
|
||||
|
||||
/// Whether all containers in the stack are running.
|
||||
bool get isHealthy => runningCount == containerCount && containerCount > 0;
|
||||
|
||||
/// Whether the stack has any running containers.
|
||||
bool get hasRunningContainers => runningCount > 0;
|
||||
|
||||
/// Whether the stack is partially running.
|
||||
bool get isPartial =>
|
||||
runningCount > 0 && runningCount < containerCount;
|
||||
}
|
||||
|
||||
/// Stack orchestration type.
|
||||
enum StackType {
|
||||
compose,
|
||||
swarm,
|
||||
kubernetes,
|
||||
}
|
||||
|
||||
/// Stack status.
|
||||
enum StackStatus {
|
||||
active,
|
||||
inactive,
|
||||
error,
|
||||
unknown,
|
||||
}
|
||||
Reference in New Issue
Block a user