feat: add container manager CLI commands and docker-compose overlay for admin container lifecycle

This commit is contained in:
2026-06-09 04:41:27 +00:00
parent 317126efc2
commit c565e3b55c
83 changed files with 6078 additions and 84 deletions
+18
View File
@@ -15,6 +15,13 @@
</div>
</div>
{% if is_private or read_only %}
<div class="project-detail-meta">
{% if is_private %}<span class="badge badge-type">Private</span>{% endif %}
{% if read_only %}<span class="badge badge-type">Read-only</span>{% endif %}
</div>
{% endif %}
<div class="project-detail-meta">
<span class="badge badge-type">{{ project.get('project_type', 'software').replace('_', ' ') }}</span>
{% if project.get('release_date') %}
@@ -54,6 +61,9 @@
<div class="project-detail-actions">
<a href="/projects/{{ project['slug'] or project['uid'] }}/files" class="project-star-btn">&#x1F4C1; Files</a>
{% if is_admin(user) %}
<a href="/projects/{{ project['slug'] or project['uid'] }}/containers" class="project-star-btn">&#x1F5A5;&#xFE0F; Containers</a>
{% endif %}
<button type="button" class="project-star-btn" data-zip-download="/projects/{{ project['slug'] or project['uid'] }}/zip">&#x1F4E6; Download zip</button>
<button type="button" class="project-star-btn" data-share="/projects/{{ project['slug'] or project['uid'] }}">&#x1F517; Share</button>
{% if user %}
@@ -61,6 +71,14 @@
{% endif %}
{% set _type = "project" %}{% set _uid = project['uid'] %}{% set _bookmarked = bookmarked %}{% include "_bookmark_button.html" %}
{% if is_owner %}
<form method="POST" action="/projects/{{ project['slug'] or project['uid'] }}/private" style="display:inline;">
<input type="hidden" name="value" value="{{ 0 if is_private else 1 }}">
<button type="submit" class="project-star-btn">{% if is_private %}&#x1F513; Make public{% else %}&#x1F512; Make private{% endif %}</button>
</form>
<form method="POST" action="/projects/{{ project['slug'] or project['uid'] }}/readonly" style="display:inline;">
<input type="hidden" name="value" value="{{ 0 if read_only else 1 }}">
<button type="submit" class="project-star-btn" data-confirm="{% if read_only %}Allow file changes again for this project?{% else %}Make this project read-only? Files become immutable until you turn this off.{% endif %}">{% if read_only %}&#x1F4DD; Allow edits{% else %}&#x1F6AB; Make read-only{% endif %}</button>
</form>
<form method="POST" action="/projects/delete/{{ project['slug'] or project['uid'] }}" style="display:inline;">
<button type="submit" class="project-star-btn" data-confirm="Delete this project?"><span class="icon">&#x1F5D1;&#xFE0F;</span> Delete</button>
</form>