Skip to content

feat: dockerize the site#596

Merged
mcdurdin merged 6 commits intostagingfrom
feat/dockerize
Feb 16, 2026
Merged

feat: dockerize the site#596
mcdurdin merged 6 commits intostagingfrom
feat/dockerize

Conversation

@mcdurdin
Copy link
Member

@mcdurdin mcdurdin commented Feb 12, 2026

Note: this removes the non-docker configuration, to reduce maintenance.

Development version runs in two containers in order to simplify live-reload. Production version will run in a single container.

See README.md for details of usage.

Depends-on: #600
Test-bot: skip

Note: this removes the non-docker configuration, to reduce maintenance.

Development version runs in two containers in order to simplify
live-reload. Production version will run in a single container.

See README.md for details of usage.

Test-bot: skip
@keymanapp-test-bot
Copy link

User Test Results

Test specification and instructions

User tests are not required

@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S22 milestone Feb 12, 2026
@github-actions github-actions bot added the feat label Feb 12, 2026
@github-project-automation github-project-automation bot moved this to Todo in Keyman Feb 12, 2026
@mcdurdin mcdurdin requested a review from darcywong00 February 12, 2026 09:48
@ermshiperete
Copy link
Contributor

ermshiperete commented Feb 12, 2026

Not directly related to this PR but triggered by it: I only skimmed over the changes and realized that I'm not clear how it's split up in two containers. Looking at the existing documentation I get an idea how it's probably done. I think at some point we should improve the readme and add a few sentences explaining what we understand here as server and client (server=backend running on the server, client=frontend running in the browser?) and which directories implement that (I guess since there is a server directory that probably implements the server part, and so probably public will have the client part, but I'm not sure...)

}

function stop_docker_containers() {
rm -f ./_control/ready
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why wouldn't this be in clean_docker_containers?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because once the site is down, it is no longer ready -- it could go in clean as well I guess?

@darcywong00
Copy link
Contributor

If we want to use status.keyman.com.localhost for local dev,
maybe we need to add an entry to

https://github.com/keymanapp/website-local-proxy/blob/master/resources/nginx.conf

For now, as we need to keep the deployment to Azure working, update the
workflows to use the new script locations. Test first on staging.
@mcdurdin mcdurdin changed the base branch from master to staging February 13, 2026 04:28
@mcdurdin
Copy link
Member Author

mcdurdin commented Feb 13, 2026

Note: I have changed base to staging (https://com-keyman-staging-status.azurewebsites.net/) while we test this, to make sure that the deployment doesn't break the main status.keyman.com site. I will follow up with a production PR once we are confident that the azure deployment still works.

Copy link
Contributor

@darcywong00 darcywong00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Note that the changes to build.sh prologue should be replicated across
our other sites to give additional stability.

Co-authored-by: Eberhard Beilharz <eb1@sil.org>
@mcdurdin
Copy link
Member Author

@ermshiperete added some docs in README.md


Three files are needed for development:

* `.keymanapp-test-bot.appid`: integer appid (e.g. 134443 for the normal test app)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do I get that appid?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Getting these files involves installing the app on your own account, e.g. I have it installed for keymanapp at https://github.com/organizations/keymanapp/settings/apps/keymanapp-test-bot.

npm install
npm run-script build
cd ..
./build.sh stop build --debug
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it necessary to specify --debug or is that the default (as it is with the builder scripts in the keyman repo)?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, --debug is not default.

@keyman-server keyman-server modified the milestones: A19S22, A19S23 Feb 13, 2026
@mcdurdin mcdurdin merged commit c85d0f7 into staging Feb 16, 2026
4 checks passed
@mcdurdin mcdurdin deleted the feat/dockerize branch February 16, 2026 03:47
@github-project-automation github-project-automation bot moved this from Todo to Done in Keyman Feb 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants