Running inside Docker

Apache + PHP,
live in your browser.

This page is served by Apache and rendered by PHP inside an Alpine Linux container. The terminal next door gives you a root shell in that very same container, with OpenCode AI installed and ready to run.

No VM, no SSH client — just a container and a WebSocket.

webvm ~ php -v live
$ cat /etc/alpine-release
3.20.10
$ php -v
PHP 8.3.36 (cli) (NTS)

$ httpd -v
Server version: Apache/2.4.67
$ opencode --version
opencode v2.3.0
$ python3 --version
Python 3.12.13
$ go version
go1.22.10
$ echo $WEBVM
1
Apache is serving this page 1.34 ms

Four small pieces, one container

Everything runs inside a single Alpine Linux image, supervised by supervisord.

Alpine Linux

v3.20.10

A tiny musl-based distribution. This is the root filesystem behind the terminal.

PHP

8.3.36

Runs as an Apache module via mod_php. This page is the proof.

Apache httpd

Apache/2.4.67

Listens on port 80 inside the container and serves the site and PHP handler.

OpenCode

v2.3.0

An AI coding agent in the terminal. Run opencode or use the OpenCode button in the web terminal.

Script, compile and query

Python, Go, C/C++ and SQLite are installed in the same container as the site and terminal.

Python

3.12.13

CPython 3 with pip. Use a virtualenv (python3 -m venv .venv) for installs.

Go

go1.22.10

The full Go toolchain. GOPATH is persisted in a Docker volume.

C / C++

g++ 13.2.1

gcc, g++, make and musl-dev for native builds with no extra setup.

SQLite

3.45.3

The sqlite3 CLI plus PHP pdo_sqlite and sqlite3 extensions.

What is actually running

Live values read by PHP from the container at request time.

Property Value
Hostname
webvm
Alpine release
3.20.10
Kernel
6.8.0-147-generic
PHP
8.3.36
Apache
Apache/2.4.67
OpenCode
v2.3.0
Python
3.12.13
Go
go1.22.10
C++
g++ 13.2.1
SQLite
3.45.3
SAPI
apache2handler
Document root
/var/www/localhost/htdocs
Server time
2026-11-14 08:35:01 UTC

Prove PHP is alive

Submit your name — this round-trip is rendered server-side by PHP 8.3.36.

The response will appear here without a page reload script. Plain HTML form → Apache → mod_php → HTML

Try it in the terminal

Open the terminal and run these commands inside the live container.

bash — root@webvm
webvm info
php -v
httpd -v
ls -la /var/www/localhost/htdocs
supervisorctl status
install more packages
apk add --no-cache vim git sqlite
php -m
vim /var/www/localhost/htdocs/index.php