crystal_china
Version, currently master branch1 version
- master branchlatestJul 29, 2026
github.com/crystal-china/website
Crystal China website
Installation
# Add this to your shard.yml
dependencies:
crystal_china:
github: crystal-china/website
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
>= 1.14.0- License
- MIT
- Author
- Billy.Zheng
- Targets
indexfrom src/build_doc_index.crcrystal_chinafrom src/crystal_china.cr
Dependencies
Runtime Dependencies
- jwt*github: crystal-community/jwt
- avram*github: luckyframework/avram
- cache*github: crystal-cache/cache
- lucky*github: luckyframework/lucky
- markd*github: zw963/markd, branch: missing.style
- carbon*github: luckyframework/carbon
- captcha*github: crystal-china/captcha
- rosetta*github: wout/rosetta
- authentic*github: luckyframework/authentic
- lucky_env*github: luckyframework/lucky_env
- lucky_task*github: luckyframework/lucky_task
- multi_auth*github: msa7/multi_auth
- tartrazine*github: ralsina/tartrazine
- time_in_words*github: crystal-china/time_in_words
- cron_scheduler*github: kostya/cron_scheduler
- carbon_smtp_adapter*github: luckyframework/carbon_smtp_adapter
- baked_file_system_mounter*github: crystal-china/baked_file_system_mounter
Development Dependencies
- timecop*github: crystal-community/timecop.crdev
- lucky_flow*github: luckyframework/lucky_flow, branch: masterdev
README
The website for https://crystal-china.org
Development dependencies
- Crystal
- pg
- bun
- podman (or docker)
Development
-
First, install Crystal. You can check out the instructions here: https://crystal-lang.org/install/
-
Run
script/setup, Just make sure you’ve gotpgandbuninstalled before running this. -
Finally, run
lucky dev, and you're all set!
deployment
There are no runtime dependencies when deploying to a remote Linux environment except one static binary with all assets baked into it, and will auto mount when running.
Following is the process for create the static binary:
-
Run
shards run indexto create an index for all markdown docs intopublic/docs/index.st, usingbin/stork. -
Run
bun run prodto build and precompress assets intopublic/assets. -
To build a static binary use
script/build_amd64_static_binary.sh, you need installpodmanordocker.alternatively, you can use sb_static script with zigcc, for more details instructions on building a static binary use zigcc, check use zig gcc as an an alternative linker
-
copy the built static binary(
bin/crystal_china) into remote linux host asbin/crystal_china, then set the necessary ENV in file.env, check the .env.sample for a example. You will have the following directory structure.. ├── .env └── bin/crystal_chinaIf server was started, you have to stop it before copy the binary successful. a more robust way to do this is use a binary diff tools create patch locally, and then send patch file to remote server apply it, this way you can update the binary on the fly, then reboot systemd service is all done.
-
Add a systemd service to start the server, review the configuration for the crystal_china.service consider using procodile as an alternative for above .env and systemd services.
-
Optionally, use nginx as a reverse proxy. You can find configuration details in nginx folder
Contributing
- Fork it (https://github.com/zw963/website/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Billy.Zheng - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Jul 29, 2026
- Crystal
>= 1.14.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/crystal-china/website
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 1