Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/workflows/os-sanity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,28 +57,28 @@ jobs:
# 只做可读性检查,不 update/install(不触网)
./scripts/feeds list >/dev/null

- name: CapOS webdesktop and capbox smoke tests
- name: CapOS WebDesktop smoke tests
shell: bash
run: |
set -euxo pipefail

bash -n package/capos/capbox/files/capbox
g++ -std=gnu++17 -Ipackage/capos/capos-webpanel/src \
-o /tmp/capos-api-smoke package/capos/capos-webpanel/src/api.cpp -lcrypt
g++ -std=gnu++17 -Ipackage/capos/capos-webpanel/src \
-o /tmp/capos-app-smoke package/capos/capos-webpanel/src/app.cpp -lcrypt -lssl -lcrypto
g++ -std=gnu++17 -Ipackage/capos/capos-webdesktop/src \
-o /tmp/capos-api-smoke package/capos/capos-webdesktop/src/api.cpp -lcrypt -lssl -lcrypto
g++ -std=gnu++17 -Ipackage/capos/capos-webdesktop/src \
-o /tmp/capos-app-smoke package/capos/capos-webdesktop/src/app.cpp -lcrypt -lssl -lcrypto

tests/capbox_logic_tests.sh
tests/webpanel_frontend_smoke.sh
tests/webpanel_proxy_smoke.sh
tests/webpanel_runtime_config_smoke.sh
tests/webdesktop_frontend_smoke.sh
tests/webdesktop_proxy_smoke.sh
tests/webdesktop_runtime_config_smoke.sh

- name: Kconfig sanity (defconfig)
shell: bash
run: |
set -euxo pipefail
# 不跑交互 menuconfig,只验证 Kconfig/配置生成链路
make defconfig
grep -q '^CONFIG_TARGET_ROOTFS_ARGOSFS=y' .config
grep -q '^CONFIG_TARGET_ROOTFS_PERSIST_VAR=y' .config

- name: Package metadata sanity (prepare-tmpinfo)
shell: bash
Expand Down
23 changes: 17 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ Instead of feeling like a stripped-down build environment, CapOS aims to feel li
<p>Runs with a small footprint and works well across a broad range of hardware, from compact devices to full PCs.</p>
</td>
<td width="50%">
<h3>Webdesktop Management</h3>
<p>Manage the system from a browser through a more visual, approachable interface for settings, packages, and system status.</p>
<h3>WebDesktop + Snap Store</h3>
<p>Manage the system and install applications from the official Snap ecosystem directly in CapOS WebDesktop. Web services are discovered and integrated automatically.</p>
</td>
</tr>
<tr>
Expand Down Expand Up @@ -76,13 +76,24 @@ Instead of feeling like a stripped-down build environment, CapOS aims to feel li

| Area | Default |
| --- | --- |
| Web panel | `2000/tcp` (HTTP), `2020/tcp` (HTTPS) |
| WebDesktop | `2000/tcp` (HTTP), `2020/tcp` (HTTPS) |
| Remote access | `23/tcp` for Telnet before a root password is set, `22/tcp` for SSH |
| Network mode | Uses `DHCP` and `DHCPv6` by default |
| Firewall | Accepts inbound traffic from `LAN`; rejects inbound traffic from `WAN` except `2000/tcp` and `2020/tcp` |

More usage details are available in the [User Guide](https://github.com/fwerkor/capos/wiki/User-guide).

## Application Architecture

CapOS separates system packages from user applications:

- `apk` manages CapOS itself: the kernel, drivers, WebDesktop, snapd, networking, storage, and other system components.
- `snapd` installs user applications directly from the official Snap Store.
- `systemd-on-procd` implements the systemd command/unit boundary needed by systemd-centric software while keeping procd as PID 1.
- `capos-webdesktop` talks to snapd over `/run/snapd.socket`, manages install/update/remove operations, and discovers Web entrypoints from Snap-owned listening sockets. It probes HTTP/HTTPS and proxies the best Web endpoint without a curated CapOS application catalog.

This means CapOS does not repackage third-party Snap applications or maintain a parallel application ecosystem.

## Downloads

| Resource | Link |
Expand All @@ -93,13 +104,13 @@ More usage details are available in the [User Guide](https://github.com/fwerkor/

## Development

CapOS welcomes contributors, maintainers, and application developers. If you want to improve the platform or build apps around it, the best starting points are below.
CapOS welcomes contributors and maintainers. System components continue to use CapOS/OpenWrt packages, while user applications are installed from the official Snap Store. Application authors do not need a CapOS-specific package format.

| Topic | Link |
| --- | --- |
| Developer guide | [CapOS Developer Guide](https://github.com/fwerkor/capos/wiki/Developer-guide) |
| App development | [CAPP Development Guide](https://blog.fwerkor.com/archives/1123) |
| Example project | [capp-helloworld](https://github.com/fwerkor/capp-helloworld) |
| Application packaging | [Snapcraft documentation](https://snapcraft.io/docs) |
| systemd compatibility | [systemd-on-procd](https://github.com/fwerkor/systemd-on-procd) |

### Source Code Access

Expand Down
Loading
Loading