Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/build-test.yml.disabled
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: List build outputs (debug)
run: |
echo "=== Contents of target/release/ ==="
ls -lah target/release/ | grep exoplanets || echo "Not found in target/release/"
ls -lah target/release/ | grep exodata || echo "Not found in target/release/"
echo ""
echo "=== Contents of target/server/release/ ==="
ls -lah target/server/release/ 2>/dev/null || echo "Directory doesn't exist"
Expand All @@ -62,8 +62,8 @@ jobs:
with:
name: server-binary
path: |
target/release/exoplanets-catalog
target/server/release/exoplanets-catalog
target/release/exodata-web
target/server/release/exodata-web
retention-days: 7
if-no-files-found: error

Expand All @@ -78,8 +78,8 @@ jobs:
run: |
echo "### Build Artifacts Generated ✅" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- **Server binary**: \`target/server/release/exoplanets-catalog\`" >> $GITHUB_STEP_SUMMARY
echo "- **Server binary**: \`target/server/release/exodata-web\`" >> $GITHUB_STEP_SUMMARY
echo "- **Site files**: \`target/site/\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Binary size: $(du -h target/server/release/exoplanets-catalog | cut -f1)" >> $GITHUB_STEP_SUMMARY
echo "Binary size: $(du -h target/server/release/exodata-web | cut -f1)" >> $GITHUB_STEP_SUMMARY
echo "Site size: $(du -sh target/site | cut -f1)" >> $GITHUB_STEP_SUMMARY
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "exoplanets-catalog"
version = "0.3.12"
name = "exodata-web"
version = "0.3.14"
edition = "2024"

[workspace]
Expand Down Expand Up @@ -101,7 +101,7 @@ panic = "abort"

[package.metadata.leptos]
# The name used by wasm-bindgen/cargo-leptos for the JS/WASM bundle. Defaults to the crate name
output-name = "exoplanets-catalog"
output-name = "exodata"

# The site root folder is where cargo-leptos generate all output. WARNING: all content of this folder will be erased on a rebuild. Use it in your server setup.
site-root = "target/site"
Expand Down
16 changes: 8 additions & 8 deletions DEPLOY.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ just ansible-ping

Expected output:
```
exoplanets | SUCCESS => {
exodata | SUCCESS => {
"changed": false,
"ping": "pong"
}
Expand Down Expand Up @@ -134,7 +134,7 @@ git push origin main
Or manually trigger from GitHub Actions UI:
- Go to Actions → Deploy → Run workflow

Watch the build at: https://github.com/oiwn/exoplanets-catalog/actions
Watch the build at: https://github.com/oiwn/exodata/actions

### 2.2 Upload Data Files

Expand Down Expand Up @@ -225,13 +225,13 @@ just ansible-logs

```bash
# Check what address app is listening on
just ansible-run "docker logs exoplanets-catalog"
just ansible-run "docker logs exodata"

# Should show: listening on http://0.0.0.0:3000
# If it shows 127.0.0.1:3000, env vars are not set

# Check env vars
just ansible-run "docker inspect exoplanets-catalog --format '{{json .Config.Env}}'"
just ansible-run "docker inspect exodata --format '{{json .Config.Env}}'"

# Should include LEPTOS_SITE_ADDR=0.0.0.0:3000
# If not, recreate container: just ansible-deploy
Expand All @@ -257,7 +257,7 @@ cat infrastructure/ansible/.env

```bash
# On the server, check if you can pull manually:
docker pull ghcr.io/oiwn/exoplanets-catalog:latest
docker pull ghcr.io/oiwn/exodata:latest

# If private, you need GHCR_TOKEN in .env
```
Expand Down Expand Up @@ -290,7 +290,7 @@ certbot --nginx -d exodata.space
│ │ │
│ ├──→ Build Docker image │
│ │ │
│ └──→ Push to ghcr.io/oiwn/exoplanets-catalog
│ └──→ Push to ghcr.io/oiwn/exodata
│ │
│ Developer Machine │
│ │ │
Expand Down Expand Up @@ -361,7 +361,7 @@ The app uses environment variables for production configuration (set automatical

| Variable | Value | Description |
|----------|-------|-------------|
| `LEPTOS_OUTPUT_NAME` | `exoplanets-catalog` | JS/WASM bundle name |
| `LEPTOS_OUTPUT_NAME` | `exodata` | JS/WASM bundle name |
| `LEPTOS_SITE_ROOT` | `site` | Static files directory |
| `LEPTOS_SITE_PKG_DIR` | `pkg` | JS/WASM subdirectory |
| `LEPTOS_SITE_ADDR` | `0.0.0.0:3000` | Listen address (must be 0.0.0.0 for Docker) |
Expand All @@ -375,7 +375,7 @@ The Dockerfile builds with `cargo leptos build --release --split`, which produce

| File | Description |
|------|-------------|
| `exoplanets-catalog.wasm` | Main bundle (535 KB) |
| `exodata.wasm` | Main bundle (535 KB) |
| `split_*.wasm` | Per-route lazy chunks |
| `chunk_*.wasm` | Shared dependency chunks |
| `__wasm_split.______________________.js` | Chunk loader |
Expand Down
2 changes: 1 addition & 1 deletion Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ ansible-status:

# View application logs
ansible-logs:
cd {{ansible_dir}} && ansible all {{ansible_args}} -m shell -a "docker logs --tail 100 exoplanets-catalog"
cd {{ansible_dir}} && ansible all {{ansible_args}} -m shell -a "docker logs --tail 100 exodata"

# SSH into server
ansible-ssh:
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Exoplanets Catalog
# Exodata

![Coverage](https://codecov.io/gh/oiwn/exoplanets-catalog/branch/main/graph/badge.svg)
![Coverage](https://codecov.io/gh/oiwn/exodata/branch/main/graph/badge.svg)
![Rust](https://img.shields.io/badge/rust-1.85%2B-orange?logo=rust)
![Leptos](https://img.shields.io/badge/leptos-0.8-blue)
![WASM](https://img.shields.io/badge/WASM-535KB-purple)
Expand All @@ -10,6 +10,8 @@ A web application for exploring the NASA Exoplanet Archive data. Browse stellar

Live site: https://exodata.space/

Source: <https://github.com/oiwn/exodata>

![Exoplanets Catalog overview](screenshot.png)

Built with Rust using [Leptos](https://github.com/leptos-rs/leptos) for the frontend, [Axum](https://github.com/tokio-rs/axum) for the backend, and [Polars](https://pola.rs/) for data processing.
Expand Down
2 changes: 1 addition & 1 deletion crates/exo-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.1"
edition = "2024"
description = "Terminal client for Exoplanets Catalog data, SQL queries, schemas, downloads, and insights"
license = "AGPL-3.0-only"
repository = "https://github.com/oiwn/exoplanets-catalog"
repository = "https://github.com/oiwn/exodata"
homepage = "https://exodata.space"
readme = "README.md"
keywords = ["exoplanets", "astronomy", "nasa", "catalog", "cli"]
Expand Down
8 changes: 4 additions & 4 deletions crates/exo-cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Claude Code:
claude mcp add --transport http exodata https://exodata.space/mcp
```

See [the MCP docs](https://github.com/oiwn/exoplanets-catalog/blob/main/docs/mcp.md#connecting-an-agent)
See [the MCP docs](https://github.com/oiwn/exodata/blob/main/docs/mcp.md#connecting-an-agent)
for Crush, OpenCode, and Codex CLI snippets.

If you prefer the CLI as an agent surface, install the bundled skill so coding
Expand All @@ -103,16 +103,16 @@ exodata skill install global # writes ~/.agents/skills/exodata/SKILL.md

Maintenance and data-preparation commands (raw-file conversion, sample views,
local SQL against `data/`, etc.) are grouped under `exodata dev`. These are
not aimed at end users; see the [CLI spec](https://github.com/oiwn/exoplanets-catalog/blob/main/specs/cli.md#development-commands)
not aimed at end users; see the [CLI spec](https://github.com/oiwn/exodata/blob/main/specs/cli.md#development-commands)
for the full list.

## More

- Web UI: <https://exodata.space>
- REST API: <https://exodata.space/swagger-ui>
- Source: <https://github.com/oiwn/exoplanets-catalog>
- Source: <https://github.com/oiwn/exodata>
- Full CLI docs:
<https://github.com/oiwn/exoplanets-catalog/blob/main/docs/cli.md>
<https://github.com/oiwn/exodata/blob/main/docs/cli.md>

## License

Expand Down
2 changes: 1 addition & 1 deletion crates/exo-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.2.0"
edition = "2024"
description = "Core data loading, metadata, insight, and table logic for Exoplanets Catalog"
license = "AGPL-3.0-only"
repository = "https://github.com/oiwn/exoplanets-catalog"
repository = "https://github.com/oiwn/exodata"
homepage = "https://exodata.space"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion crates/exo-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2024"
description = "Shared serializable types for Exoplanets Catalog"
license = "AGPL-3.0-only"
repository = "https://github.com/oiwn/exoplanets-catalog"
repository = "https://github.com/oiwn/exodata"
homepage = "https://exodata.space"

[lib]
Expand Down
4 changes: 2 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
version: '3.8'

services:
exoplanets-catalog:
exodata:
build:
context: .
dockerfile: infrastructure/docker/Dockerfile
container_name: exoplanets-catalog
container_name: exodata
restart: unless-stopped
ports:
- "3000:3000"
Expand Down
2 changes: 1 addition & 1 deletion docs/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,4 @@ Leptos server functions power the interactive website. REST endpoints expose the

The project is open source:

<https://github.com/oiwn/exoplanets-catalog>
<https://github.com/oiwn/exodata>
4 changes: 2 additions & 2 deletions infrastructure/ansible/inventory/group_vars/all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ domain: exodata.space
admin_email: alex@imscraping.ninja

# Docker image
docker_image: ghcr.io/oiwn/exoplanets-catalog
docker_image: ghcr.io/oiwn/exodata
docker_tag: latest

# Application settings
app_name: exoplanets-catalog
app_name: exodata
app_port: 3000
data_path: /app/data

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
leptos_env:
LEPTOS_OUTPUT_NAME: "exoplanets-catalog"
LEPTOS_OUTPUT_NAME: "exodata"
LEPTOS_SITE_ROOT: "site"
LEPTOS_SITE_PKG_DIR: "pkg"
LEPTOS_SITE_ADDR: "0.0.0.0:3000"
Expand Down
2 changes: 1 addition & 1 deletion infrastructure/ansible/inventory/hosts.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
all:
hosts:
exoplanets:
exodata:
ansible_host: "{{ droplet_ip }}"
ansible_user: root
ansible_python_interpreter: /usr/bin/python3
13 changes: 10 additions & 3 deletions infrastructure/ansible/playbooks/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
---
- name: Deploy Exoplanets Catalog
hosts: exoplanets
- name: Deploy Exodata
hosts: exodata
become: yes

vars_files:
- ../inventory/group_vars/all.yml
- ../inventory/group_vars/leptos_env.yml

tasks:
- name: Log in to GitHub Container Registry
community.docker.docker_login:
registry: ghcr.io
username: "{{ lookup('env', 'GHCR_USER') }}"
password: "{{ lookup('env', 'GHCR_TOKEN') }}"
when: lookup('env', 'GHCR_TOKEN') | length > 0

- name: Pull latest Docker image
community.docker.docker_image:
name: "{{ docker_image }}"
Expand All @@ -30,7 +37,7 @@
- "{{ app_port }}:3000"
volumes:
- "{{ data_path }}:/app/data:ro"
env: "{{ leptos_env }}"
env: "{{ leptos_env | combine({'LEPTOS_OUTPUT_NAME': 'exodata'}) }}"

- name: Wait for application health check
ansible.builtin.uri:
Expand Down
4 changes: 2 additions & 2 deletions infrastructure/ansible/playbooks/setup.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
- name: Setup Exoplanets Catalog Server
hosts: exoplanets
- name: Setup Exodata Server
hosts: exodata
become: yes

vars_files:
Expand Down
2 changes: 1 addition & 1 deletion infrastructure/ansible/playbooks/ssl.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
- name: Setup SSL Certificate
hosts: exoplanets
hosts: exodata
become: yes

vars_files:
Expand Down
2 changes: 1 addition & 1 deletion infrastructure/ansible/playbooks/upload-data.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
- name: Upload Data Files
hosts: exoplanets
hosts: exodata
become: yes

vars_files:
Expand Down
3 changes: 3 additions & 0 deletions infrastructure/ansible/requirements.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
collections:
- name: community.docker
2 changes: 1 addition & 1 deletion infrastructure/ansible/roles/app/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@
- "{{ app_port }}:3000"
volumes:
- "{{ data_path }}:/app/data:ro"
env: "{{ leptos_env }}"
env: "{{ leptos_env | combine({'LEPTOS_OUTPUT_NAME': 'exodata'}) }}"
17 changes: 13 additions & 4 deletions infrastructure/ansible/roles/nginx/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,29 @@

- name: Deploy Nginx site configuration
ansible.builtin.template:
src: exoplanets.conf.j2
dest: /etc/nginx/sites-available/exoplanets
src: exodata.conf.j2
dest: /etc/nginx/sites-available/exodata
mode: '0644'
vars:
ssl_enabled: "{{ ssl_cert.stat.exists }}"
notify: Reload Nginx

- name: Enable site
ansible.builtin.file:
src: /etc/nginx/sites-available/exoplanets
dest: /etc/nginx/sites-enabled/exoplanets
src: /etc/nginx/sites-available/exodata
dest: /etc/nginx/sites-enabled/exodata
state: link
notify: Reload Nginx

- name: Remove legacy Nginx site
ansible.builtin.file:
path: "{{ item }}"
state: absent
loop:
- /etc/nginx/sites-enabled/exoplanets
- /etc/nginx/sites-available/exoplanets
notify: Reload Nginx

- name: Remove default site
ansible.builtin.file:
path: /etc/nginx/sites-enabled/default
Expand Down
8 changes: 3 additions & 5 deletions infrastructure/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,8 @@ RUN cargo leptos build --release --split
# Normalize the server binary name for the runtime image. cargo-leptos has used
# different target names as the package and public command names changed.
RUN mkdir -p /app/server-bin && \
if [ -x /app/target/release/exodata ]; then \
cp /app/target/release/exodata /app/server-bin/exodata; \
elif [ -x /app/target/release/exoplanets-catalog ]; then \
cp /app/target/release/exoplanets-catalog /app/server-bin/exodata; \
if [ -x /app/target/release/exodata-web ]; then \
cp /app/target/release/exodata-web /app/server-bin/exodata; \
else \
echo "Server binary not found" >&2; \
ls -lah /app/target/release/ >&2; \
Expand All @@ -54,7 +52,7 @@ RUN mkdir -p /app/server-bin && \

# Debug: List where files actually are
RUN echo "=== Listing target/release ===" && \
ls -lah /app/target/release/ | grep -E 'exodata|exoplanets' || true && \
ls -lah /app/target/release/ | grep -E 'exodata' || true && \
echo "=== Listing target/server/release ===" && \
ls -lah /app/target/server/release/ 2>/dev/null || echo "Directory does not exist" && \
echo "=== Listing target/site ===" && \
Expand Down
Loading
Loading