website

Crystal China website

The website for https://crystal-china.org

Development dependencies

  • Crystal Progrmaming Language
  • postgresql(Only used for user login for now)
  • nodejs(with yarn)
  • (Optional)wasm-pack (only for used with bin/tinysearch to create search index for markdowns)

Development

Install all necessary development dependencies, then run lucky dev.

deployment

There are no runtime dependencies when deploying to a remote Linux environment except one static binary with assets baked into it, and will auto mount when running.

Following is the process for create the static binary:

  1. Run shards run index to create a index for all markdowns docs into public/docs/index.st, use bin/stork.

  2. Run yarn prod to package assets use laravel mix.

  3. To built a static binary use sb_static script. for more details instructions on building a static binary use zigcc, check use zig gcc as an an alternative linker

  4. copy the built static binary(bin/crystal_china) into remote linux host as bin/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_china
    

    If 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.

  5. 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.

  6. Optionally, use nginx as a reverse proxy. You can find configuration details in nginx folder

Contributing

  1. Fork it (https://github.com/zw963/website/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Repository

website

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 13
  • 2 days ago
  • September 2, 2024
License

MIT License

Links
Synced at

Thu, 20 Feb 2025 23:35:12 GMT

Languages