This repo is a fork of the original web-based character creator application for the Eclipse Phase First Edition (1E) role-playing game, because I prefer Eclipse Phase 1E over the newer Second Edition.
While I think that Posthuman Studios are a great team (support them and buy their stuff!), Eclipse Phase has always had a problem of not really knowing what it wants to be. Although the second edition is more streamlined, I think Eclipse Phase 2E really lost sight of its roots as a simulationist game system focused on accurately and consistently depicting the minutiae of how its hard-scifi setting works.
The original upstream EPCC repo is no longer maintained, so I forked it to bring it up to date (so that it can be built automatically with modern CI), make tweaks to improve it, and preserve it for those of us still playing Eclipse Phase 1E.
- Source
- Releases
- Issues
- Websites that Host EPCC
- epcc.neosynth.net
- epcc.onrender.com (Mirror, has delayed startup on inactivity)
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
You can read the full license description here.
See here for a list of everyone who has contributed to this project.
The current version is 2.02 (Argonaut). See the Changelog.
Application defaults live in config/, with EPCC-specific settings in
config/epcc.php. Laravel environment variables can override
those defaults; pass a custom env file to Docker with --env-file custom.env.
Release identity has two deliberately separate sets of variables:
EPCC_VERSION_NAMEandEPCC_VERSION_NUMBERare canonical compatibility metadata written into exported character saves (currentlyArgonautand numeric2.02).EPCC_BUILD_COMMITrecords the source commit in exported saves.EPCC_DISPLAY_VERSION,EPCC_DISPLAY_VERSION_NAME,EPCC_DISPLAY_COMMIT, andEPCC_DISPLAY_RELEASE_DATEdescribe the running build throughGET /api/version. Nightly display values may identify a Git commit without changing the numeric save compatibility version.
Eclipse Phase content is stored in the database. A full SQL dump is available
at database/database.sql.
Docker is the recommended, and only officially supported method or running this app. While the setup steps below can be used for development, it is highly recommended that deployment be done via Docker.
The following command builds a deployment-ready image and refreshes the
floating PHP 8.4 base to its latest patch. If your user is not in the docker
group, you may need sudo.
docker image build --pull --tag epcc .The build fails if the resolved PHP runtime is older than 8.4.27, the first PHP 8.4 release that fixes CVE-2026-109618 and CVE-2026-109619.
If you don't want to build your own docker image, you can pull it from this repo's GitHub Container Registry here.
ghcr.io/neonspectra/epcc:nightly- Latest nightly (built off the latest change inmain)ghcr.io/neonspectra/epcc:latest- Latest stable release versionghcr.io/neonspectra/epcc:sha-XXXX- Pin a nightly based off its SHA commit hashghcr.io/neonspectra/epcc:vXXXXX- Pin a specific stable release version with its version tag.- Note that we don't have any pre-fork builds of the image. Please visit the original project if you want an older image.
In most cases the following command will allow you to test the build image locally. It exposes a webserver on port 8080 that you can access to view the container. You can test access locally by navigating to http://localhost:8080.
sudo docker run --rm -it -p 8080:80 --name epcc epccIf deploying to the internet, you may want to consider using your own '.env' file.
Doing so allows you to change things like the error reporting location, or almost any other configuration.
Simply add --env-file custom.env to the run command above.
For troubleshooting, you can run a health check:
sudo docker inspect --format='{{json .State.Health}}' epccYou will need:
- PHP 8.4.27 or greater
- node 24 LTS
- composer 2.x
- Either: mySql 14.14 or greater
- Or: sqlite3 (Recommended)
- Create a sqlite3 database
sed 's/\\n/ /g' database.sql > tmp.sql sqlite3 --init tmp.sql database.sqlite
- Copy
standalone.envto.env.
- create a MySql database
CREATE USER 'epcc_www'@'localhost' IDENTIFIED BY '$DATABASE_PASSWORD'; GRANT ALL PRIVILEGES ON EclipsePhaseData.* TO 'epcc_www'@'localhost' WITH GRANT OPTION; CREATE DATABASE EclipsePhaseData; USE EclipsePhaseData;
- Import the database
mysql -h localhost -u epcc_www -p'$DATABASE_PASSWORD' EclipsePhaseData < database/database.sql - Configure database access in your custom
.envfile.
See here for how to do that.
To save changes made to the Sqlite database run:
echo -e ".once database.sql\n.dump"|sqlite3 database.sqliteWARNING: If you use this feature, skip the sed step when creating the database.
- Set up the database.
- From a command prompt in the top level of this project run
php artisan serve - Browse to http://localhost:8080
composer install
php artisan testPull requests also build the Docker image from a refreshed base and smoke-test
the PHP security floor, homepage, health check, /api/version, and exported
save metadata. Stable releases are dispatched through the Release Image
workflow, which tests, builds and verifies both architectures before publishing
vX.XX/latest and creating the matching Git tag and GitHub Release.