Compare commits
5 Commits
52ddec74a9
...
35d1b86488
Author | SHA1 | Date |
---|---|---|
lalanza808 | 35d1b86488 | 4 years ago |
lalanza808 | 70d636148a | 4 years ago |
lalanza808 | ec6ad3631c | 4 years ago |
lalanza808 | e156b2f914 | 4 years ago |
lalanza808 | a2365493d9 | 4 years ago |
@ -1,22 +1,34 @@
|
|||||||
FROM ubuntu:19.10 as builder
|
FROM ubuntu:19.10 as builder
|
||||||
|
|
||||||
|
# Install required packages
|
||||||
RUN apt-get update && apt-get install -y build-essential
|
RUN apt-get update && apt-get install -y build-essential
|
||||||
|
|
||||||
RUN apt-get install -y curl git
|
RUN apt-get install -y curl git
|
||||||
|
|
||||||
|
# Setup app user and workspace
|
||||||
RUN useradd -m -d /home/wownero-explorer wownero-explorer
|
RUN useradd -m -d /home/wownero-explorer wownero-explorer
|
||||||
|
RUN mkdir -p /srv/wownero-explorer && chown -R wownero-explorer:wownero-explorer /srv
|
||||||
RUN mkdir -p /srv && chown -R wownero-explorer:wownero-explorer /srv
|
|
||||||
|
|
||||||
USER wownero-explorer
|
USER wownero-explorer
|
||||||
WORKDIR /srv
|
WORKDIR /srv/wownero-explorer
|
||||||
|
|
||||||
|
# Install Rust
|
||||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | RUSTUP_HOME=/home/wownero-explorer/.rustup sh -s -- -y
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | RUSTUP_HOME=/home/wownero-explorer/.rustup sh -s -- -y
|
||||||
RUN git clone https://git.wownero.com/lza_menace/wownero-explorer && \
|
|
||||||
cd wownero-explorer && \
|
|
||||||
~/.cargo/bin/rustup override set nightly && \
|
|
||||||
~/.cargo/bin/cargo build --release
|
|
||||||
|
|
||||||
FROM ubuntu:19.10
|
# Setup dummy build and perform release
|
||||||
|
COPY dummy.rs .
|
||||||
|
COPY Cargo.toml .
|
||||||
|
COPY Cargo.lock .
|
||||||
|
RUN sed -i 's_src/main.rs_dummy.rs_' Cargo.toml
|
||||||
|
RUN ~/.cargo/bin/rustup override set nightly
|
||||||
|
RUN ~/.cargo/bin/cargo build --release
|
||||||
|
|
||||||
|
# Put real source onto image and perform release
|
||||||
|
RUN sed -i 's_dummy.rs_src/main.rs_' Cargo.toml
|
||||||
|
COPY src src
|
||||||
|
RUN ~/.cargo/bin/cargo build --release
|
||||||
|
|
||||||
|
FROM ubuntu:19.10
|
||||||
COPY --from=builder /srv/wownero-explorer/target/release/wownero-explorer /bin/wownero-explorer
|
COPY --from=builder /srv/wownero-explorer/target/release/wownero-explorer /bin/wownero-explorer
|
||||||
|
COPY static static
|
||||||
|
COPY templates templates
|
||||||
|
|
||||||
|
CMD 'wownero-explorer'
|
||||||
|
@ -1,11 +1,58 @@
|
|||||||
## Wownero Explorer
|
## Wownero Explorer
|
||||||
|
|
||||||
Web interface for searching the Wownero blockchain.
|
A simple web interface for searching the Wownero blockchain.
|
||||||
|
|
||||||
## Running
|
## Quick-Start
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
The fastest way to get it up and running to test it locally is to use the pre-made Docker container:
|
||||||
|
|
||||||
|
```
|
||||||
|
export DAEMON_URI=http://so.wow.candy.surf:34568
|
||||||
|
docker run -d \
|
||||||
|
--name wownero-explorer \
|
||||||
|
--rm \
|
||||||
|
-p 80:8000 \
|
||||||
|
-e DAEMON_URI=$DAEMON_URI \
|
||||||
|
lalanza808/wownero-explorer:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
You could also just use `docker-compose`, though it will download a reverse proxy image:
|
||||||
|
|
||||||
|
```
|
||||||
|
export DAEMON_URI=http://so.wow.candy.surf:34568
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Navigate to http://localhost/ to browse the explorer.
|
||||||
|
|
||||||
|
|
||||||
|
### Rust
|
||||||
|
|
||||||
|
Alternatively, if you'd like to build/run using native Rust tools, follow these steps:
|
||||||
|
|
||||||
1. Install Rust: https://www.rust-lang.org/tools/install
|
1. Install Rust: https://www.rust-lang.org/tools/install
|
||||||
2. Clone this repo: `git clone https://git.wownero.com/lza_menace/wownero-explorer && cd wownero-explorer`
|
2. Clone this repo: `git clone https://git.wownero.com/lza_menace/wownero-explorer && cd wownero-explorer`
|
||||||
3. Pin the nightly version of rust to the local directory: `rustup override set nightly`
|
3. Pin the nightly version of rust to the local directory: `rustup override set nightly`
|
||||||
4. [Pick a Wownero node](https://wownero.com) if you don't have one and apply the `DAEMON_URI` environment variable: `export DAEMON_URI=http://so.wow.candy.surf:34568`
|
4. [Pick a Wownero node](https://wownero.com) if you don't have one and apply the `DAEMON_URI` environment variable: `export DAEMON_URI=http://so.wow.candy.surf:34568`
|
||||||
5. Run the application: `cargo run`
|
5. Run the application: `cargo run`
|
||||||
|
6. Navigate to http://localhost:8000/
|
||||||
|
|
||||||
|
|
||||||
|
## Full Installation
|
||||||
|
|
||||||
|
I'm using [Traefik](https://docs.traefik.io/getting-started/concepts/) as a reverse proxy in order to handle automatic TLS certification with Let's Encrypt and to avoid manage Nginx configs. If you want to run the full installation you will need a registered domain and control of DNS records.
|
||||||
|
|
||||||
|
I don't feel like paying for a cluster for this simple app so I'm using `docker-compose` on a single box that I can recreate easily often to avoid config drift.
|
||||||
|
|
||||||
|
1. Create new file, `docker-compose.prod.yml` as a copy of `docker-compose.yml`
|
||||||
|
2. Uncomment labels under `wownero-explorer` service
|
||||||
|
3. Change labels to match external DNS name
|
||||||
|
4. Set `${ACME_EMAIL}` either as hardcoded string or pass as environment variable
|
||||||
|
5. Run `docker-compose -f docker-compose.prod.yml up -d`
|
||||||
|
|
||||||
|
|
||||||
|
## Questions?
|
||||||
|
|
||||||
|
Ask around in IRC: https://webchat.freenode.net/?room=#wownero
|
||||||
|
Reference in new issue