Skip to content

Commit

Permalink
Readme for pmrapp.
Browse files Browse the repository at this point in the history
  • Loading branch information
metatoaster committed Aug 9, 2024
1 parent b7a9eb6 commit a4ecba3
Showing 1 changed file with 22 additions and 58 deletions.
80 changes: 22 additions & 58 deletions pmrapp/README.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,47 @@
<picture>
<source srcset="https://raw.githubusercontent.com/leptos-rs/leptos/main/docs/logos/Leptos_logo_Solid_White.svg" media="(prefers-color-scheme: dark)">
<img src="https://raw.githubusercontent.com/leptos-rs/leptos/main/docs/logos/Leptos_logo_RGB.svg" alt="Leptos Logo">
</picture>
# pmrapp - Web application for serving Physiome Model Repository

# Leptos Axum Starter Template
This is the web application service for hosting a running instance of
the next generation of the Physiome Model Repository platform. It is
built on top of the [Leptos](https://github.com/leptos-rs/leptos) web
framework for the UI and [Axum](https://github.com/tokio-rs/axum) web
application framework for the integration between various components.

This is a template for use with the [Leptos](https://github.com/leptos-rs/leptos) web framework and the [cargo-leptos](https://github.com/akesson/cargo-leptos) tool using [Axum](https://github.com/tokio-rs/axum).
## Building `pmrapp`

## Creating your template repo
Ensure the Rust compiler can produce the wasm target, which may be done
using `rustup target add wasm32-unknown-unknown`.

If you don't have `cargo-leptos` installed you can install it with
The `cargo-leptos` tool streamlines the whole development and build
process, install it with:

```bash
cargo install cargo-leptos --locked
```

Then run
```bash
cargo leptos new --git leptos-rs/start-axum
```

to generate a new project template.
Once ready, simply run:

```bash
cd {{project-name}}
cargo leptos watch
```

to go to your newly created project.
Feel free to explore the project structure, but the best place to start with your application code is in `src/app.rs`.
Addtionally, Cargo.toml may need updating as new versions of the dependencies are released, especially if things are not working after a `cargo update`.
Which will start the application server, and once it started point your
browser to `http://127.0.0.1:3000`.

## Running your project
## Compiling for Release

```bash
cargo leptos watch
cargo leptos build --release
```

## Installing Additional Tools
Will generate your server binary in target/server/release and your site
package in target/site.

By default, `cargo-leptos` uses `nightly` Rust, `cargo-generate`, and `sass`. If you run into any trouble, you may need to install one or more of these tools.
## Testing

1. `rustup toolchain install nightly --allow-downgrade` - make sure you have Rust nightly
2. `rustup target add wasm32-unknown-unknown` - add the ability to compile Rust to WebAssembly
3. `cargo install cargo-generate` - install `cargo-generate` binary (should be installed automatically in future)
4. `npm install -g sass` - install `dart-sass` (should be optional in future
TODO

## Compiling for Release
```bash
cargo leptos build --release
```

Will generate your server binary in target/server/release and your site package in target/site
Though once we have tests, the following may be done:

## Testing Your Project
```bash
cargo leptos end-to-end
```
Expand All @@ -63,28 +52,3 @@ cargo leptos end-to-end --release

Cargo-leptos uses Playwright as the end-to-end test tool.
Tests are located in end2end/tests directory.

## Executing a Server on a Remote Machine Without the Toolchain
After running a `cargo leptos build --release` the minimum files needed are:

1. The server binary located in `target/server/release`
2. The `site` directory and all files within located in `target/site`

Copy these files to your remote server. The directory structure should be:
```text
{{project-name}}
site/
```
Set the following environment variables (updating for your project as needed):
```text
LEPTOS_OUTPUT_NAME="{{project-name}}"
LEPTOS_SITE_ROOT="site"
LEPTOS_SITE_PKG_DIR="pkg"
LEPTOS_SITE_ADDR="127.0.0.1:3000"
LEPTOS_RELOAD_PORT="3001"
```
Finally, run the server binary.

## Licensing

This template itself is released under the Unlicense. You should replace the LICENSE for your own application with an appropriate license if you plan to release it publicly.

0 comments on commit a4ecba3

Please sign in to comment.