> ## Documentation Index
> Fetch the complete documentation index at: https://docs-v2.ard.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Architecture

> Geos system architecture, deployment structure, and components

## Deployment Architecture

Geos is deployed on **EC2** across **3 nodes**:

* **geos-01** - Admin panel
  * [AWS Console](https://eu-west-1.console.aws.amazon.com/ec2/home?region=eu-west-1#InstanceDetails:instanceId=i-0065c9b78bd9ccf73)
* **geos-02** - Server and search service
  * [AWS Console](https://eu-west-1.console.aws.amazon.com/ec2/home?region=eu-west-1#InstanceDetails:instanceId=i-0c0dc5dd24dfc10b1)
* **geos-03** - Server and search service
  * [AWS Console](https://eu-west-1.console.aws.amazon.com/ec2/home?region=eu-west-1#InstanceDetails:instanceId=i-0e11c67a1acdaff1c)

## Database

Geos uses:

* **MySQL** - Primary database
* **AWS RDS** - Database backend
  * [AWS Console](https://eu-west-1.console.aws.amazon.com/rds/home?region=eu-west-1#database:id=geos-production-new;is-cluster=false)

**Database Host:** `geos-production-new.csqzdc49vgv3.eu-west-1.rds.amazonaws.com`
**Database Name:** `geos`
**Username:** `geos`

<Warning>
  When accessing the database, **always use transactions** and set **autocommit to false** to prevent accidental data modifications.
</Warning>

## Search Service

Geos uses **Apache Solr** for search functionality, deployed on both **node 02** and **node 03**.

## Access

### SSH Access

All nodes can be accessed via SSH using the `deployer` user:

```bash theme={null}
# Node 01 (Admin)
ssh geos-01

# Node 02 (Server)
ssh geos-02

# Node 03 (Server)
ssh geos-03
```

Once connected, switch to the deployer user:

```bash theme={null}
sudo su - deployer
```

### Admin Panel

**Admin Panel URL:** [http://geos-admin.devops.arabiaweather.com/](http://geos-admin.devops.arabiaweather.com/)

**Authentication credentials** can be found in:
[admin\_panel/config/application.js](https://git.wthr.ws/weathertech/geos-v3/-/blob/dockerize/admin_panel/config/application.js?ref_type=heads)

## Configuration Files

**Admin Panel MySQL Config:**
`/home/deployer/geos/admin_panel/config/adapters.js`

**MySQL Database Config:**
`/home/deployer/geos/config/database.json`
