Skip to content

Commit 8f0cb94

Browse files
authored
Upgrade Neo and Neo UI to version 3.1.0
Updated Neo and Neo UI versions, improved clarity in instructions, and fixed minor grammatical issues.
1 parent 8334011 commit 8f0cb94

File tree

1 file changed

+47
-82
lines changed

1 file changed

+47
-82
lines changed

netapp-neo/client/neo-ui.md

Lines changed: 47 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,29 @@
33

44
This guide provides the necessary steps to deploy a "battery-included" Neo instance, using Docker or Podman, for **DEVELOPMENT and TESTING**, that includes:
55

6-
- an official postgres instance, version 16.10-alpine3.21
7-
- version 3.0.4 of Neo
8-
- version 3.0.4 of Neo UI
6+
- an official PostgreSQL instance, version 16.10-alpine3.21
7+
- version 3.1.0 of Neo
8+
- version 3.1.0 of Neo UI
99

10-
For testing purposes, a local SAMBA service is also be included.
10+
For testing purposes, a local SAMBA service is also included.
1111

1212
> [!IMPORTANT]
13-
> This guide leverage ```podman``` as a container runtime which calls for ```sudo``` due to its rootless nature and Neo needing rootful permissions to
13+
> This guide leverages ```podman``` as a container runtime, which calls for ```sudo``` due to its rootless nature and Neo needing rootful permissions to
1414
> mount the shares.
1515
> When using ```docker```, just replace ```sudo podman``` by ```docker```.
1616
1717
## Deployment Guide
1818

19-
Create a directory called "neo-test" within your home directory tree or any location of your choice to host all the below configuration files.
19+
Create a directory called "neo-test" in your home directory or any location of your choice to host the configuration files below.
2020

2121
### Environment variables
22-
First we need to setup the following .env file to capture the necessary information such licensing and MS Graph details if M365 Copilot is a potential use case.
22+
First, we need to set up the following .env file to capture the database configuration.
2323

2424
```INI
2525
# NetApp Settings (Required)
26-
NETAPP_CONNECTOR_LICENSE=
27-
28-
# Microsoft Graph configuration (Required)
29-
MS_GRAPH_CONNECTOR_ID=neoconnectortest # <== Needs to be changed!
30-
#MS_GRAPH_CLIENT_ID=""
31-
#MS_GRAPH_CLIENT_SECRET=""
32-
#MS_GRAPH_TENANT_ID=""
33-
34-
# Database Configuration (Required- PostgreSQL is recommended)
35-
DB_TYPE=postgres # Options postgres, mysql
36-
## For PostgreSQL:
3726
DATABASE_URL=postgresql://postgres:neodbsecret@neodb:5432/neoconnectortest # <== Needs to be changed!
3827
## or for MySQL:
3928
#DATABASE_URL=mysql://user:password@localhost:3306/netapp_connector
40-
41-
# Authentication (Optional - defaults provided)
42-
#JWT_SECRET_KEY=your-secret-key-here
43-
#ACCESS_TOKEN_EXPIRE_MINUTES=1440
44-
45-
# Multi-container deployments (Optional)
46-
#ENCRYPTION_KEY=your-shared-encryption-key
4729
```
4830

4931
### Deploy
@@ -67,7 +49,7 @@ services:
6749
restart: unless-stopped
6850

6951
neo:
70-
image: ghcr.io/netapp/netapp-copilot-connector:3.0.4
52+
image: ghcr.io/netapp/netapp-copilot-connector:3.1.0
7153
container_name: neo
7254
# deploy: # Uncomment this section to enable GPU support
7355
# resources:
@@ -91,16 +73,9 @@ services:
9173
environment:
9274
- PORT=8080
9375
- PYTHONUNBUFFERED=1
94-
- DB_PATH=data/database.db
95-
- MS_GRAPH_CLIENT_ID=${MS_GRAPH_CLIENT_ID}
96-
- MS_GRAPH_CLIENT_SECRET=${MS_GRAPH_CLIENT_SECRET}
97-
- MS_GRAPH_TENANT_ID=${MS_GRAPH_TENANT_ID}
98-
- MS_GRAPH_CONNECTOR_ID=${MS_GRAPH_CONNECTOR_ID:-netappcopilot}
99-
- MS_GRAPH_CONNECTOR_NAME=${MS_GRAPH_CONNECTOR_NAME:-"NetApp Connector"}
100-
- NETAPP_CONNECTOR_LICENSE=${NETAPP_CONNECTOR_LICENSE}
10176

10277
neoui:
103-
image: ghcr.io/beezy-dev/neo-ui-framework:3.0.4-2
78+
image: ghcr.io/beezy-dev/neo-ui-framework:3.1.0
10479
container_name: neoui
10580
ports:
10681
- "8080:80"
@@ -140,7 +115,7 @@ volumes:
140115
141116
Then start:
142117
```BASH
143-
sudo podman compose -f neo-all-in.yml up -d
118+
sudo podman compose -f neo-all-in.yml up --build -d
144119
```
145120

146121
Verify that all containers are started and running:
@@ -149,60 +124,50 @@ sudo podman ps
149124
```
150125
Expected output:
151126
```BASH
152-
ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
153-
5eb9df04e9dd docker.io/library/postgres:16.10-alpine3.21 postgres 12 minutes ago Up 12 minutes 0.0.0.0:5432->5432/tcp neodb
154-
2eaffee6a8c0 ghcr.io/netapp/netapp-copilot-connector:3.0.4 12 minutes ago Up 12 minutes 0.0.0.0:8081->8080/tcp neo
155-
78b5ea86b582 ghcr.io/beezy-dev/neo-ui-framework:3.0.4-2 /entrypoint.sh 12 minutes ago Up 12 minutes 0.0.0.0:8080->80/tcp neoui
156-
873d425a8179 docker.io/dockurr/samba:latest 12 minutes ago Up 12 minutes 0.0.0.0:445->445/tcp neosmb
127+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
128+
d8bbf02435fb docker.io/library/postgres:16.10-alpine3.21 postgres 7 seconds ago Up 8 seconds 0.0.0.0:5432->5432/tcp neodb
129+
1aefb8db34e8 ghcr.io/netapp/netapp-copilot-connector:3.1.0 6 seconds ago Up 7 seconds 0.0.0.0:8081->8080/tcp neo
130+
792aa53a0689 ghcr.io/beezy-dev/neo-ui-framework:3.1.0 5 seconds ago Up 6 seconds 0.0.0.0:8080->80/tcp neoui
131+
670ec2f91cdf docker.io/dockurr/samba:latest 4 seconds ago Up 4 seconds 0.0.0.0:445->445/tcp neosmb
157132
```
158133

159-
#### Admin Password
160-
> [!IMPORTANT]
161-
> This temporary password will not appear again if you restart the container. If you failed to capture it, stop
162-
> both neodb and neo containers, delete the neodb container and volume, and restart from step one.
134+
The logs can be gathered on a different console window with the following command:
135+
```BASH
136+
sudo podman compose -f neo-all-in.yml logs -f
137+
```
163138

164-
At the first run, recover the temporary ```admin``` password in the container logs:
139+
### Configure
165140

166-
```bash
167-
docker logs neo
168-
```
169-
Expected output:
170-
```LOG
171-
....
172-
2025-11-10 09:32:54.841 | INFO | app.enumeration_crawler:start:1133 - EnumerationFirstCrawler started successfully
173-
2025-11-10 09:32:54.841 | INFO | app.main:lifespan:202 - EnumerationFirstCrawler started successfully
174-
2025-11-10 09:32:55.049 | INFO | app.main:lifespan:230 -
175-
==================== AUTO-GENERATED ADMIN ACCOUNT ====================
176-
Username: admin
177-
Password: 7e;2?r><kT&7At:x]j^(
178-
====================================================================
179-
Please log in and change this password immediately!
180-
181-
182-
╔══════════════════════════════════════════════════════════════════════════════╗
183-
║ ║
184-
║ ✅ NetApp NEO Connector Started Successfully! ║
185-
║ ║
186-
║ 🌐 API Server: Ready ║
187-
║ 📊 Database: Initialized ║
188-
║ 🔗 Microsoft Graph: Connected ║
189-
║ 📁 SMB Virtual File System: Ready ║
190-
║ ║
191-
║ Ready to serve Microsoft 365 Copilot requests! ║
192-
║ ║
193-
╚══════════════════════════════════════════════════════════════════════════════╝
194-
195-
2025-11-10 09:32:55.049 | INFO | app.background_task_manager:submit_task:138 - Submitted background task 8c740c66-6ddb-4650-b65d-dd980e17835b: schedule_existing_shares
196-
2025-11-10 09:32:55.049 | INFO | app.main:lifespan:302 - ⚡ Share scheduling started in background (task_id: 8c740c66-6ddb-4650-b65d-dd980e17835b)
197-
....
198-
```
141+
#### via GUI
142+
Neo Console is available at ```http://your.ip:8080``` or ```http://myhost.mydomain.tld:8080``` and will welcome you with the following screen:
143+
144+
<img width="1891" height="962" alt="image" src="https://github.com/user-attachments/assets/87732882-7995-4266-83a2-3e31f59c57e8" />
145+
146+
Go to Settings and select the tab Neo Core to start the configuration
147+
<img width="1891" height="962" alt="image" src="https://github.com/user-attachments/assets/2cfa73d9-33a1-4165-ab25-1628a579c6f6" />
199148

200-
#### Access the UI
149+
Once a valid license key is entered and saved, the page will refresh to show the following status:
150+
<img width="1884" height="952" alt="image" src="https://github.com/user-attachments/assets/5ed90473-fb88-4cbe-971f-fe305a73b98a" />
151+
152+
At this stage, the M365 Copilot Graph or other settings can be configured now or later. Once the desired configuration is complete, click "Setup Complete".
153+
This will trigger a restart of Neo's container with the configured settings:
154+
<img width="1884" height="952" alt="image" src="https://github.com/user-attachments/assets/2711319d-f4f4-47d4-afa8-1b2e037289c6" />
155+
156+
Once Neo has restarted, the page will reload with the status "Complete" and a button "Admin Credentials" will appear to recover the temporary credentials:
157+
<img width="1884" height="952" alt="image" src="https://github.com/user-attachments/assets/7db70db5-77dc-4cb9-9472-9fe912c7c0f5" />
158+
159+
### Admin Password
160+
> [!IMPORTANT]
161+
> This temporary password will not be accessible again once you have logged in with the credentials.
162+
> Make sure to either save it in your password manager or change it in the Users page.
201163
202-
Open a browser and point to your host IP on port 8080 like so: http://192.168.122.245:8080 or http://myhost.mydomain.tld:8080
203-
Make sure that you don't have any firewall rules blocking you.
164+
Credentials
165+
<img width="1884" height="952" alt="image" src="https://github.com/user-attachments/assets/1e063c89-e210-4c3a-9bbf-110c070b834c" />
166+
Updating credentials
167+
<img width="1884" height="952" alt="image" src="https://github.com/user-attachments/assets/0e602ddb-5d68-49f6-a0bb-1cf82539cb27" />
204168

205-
The first page will indicate how to login using the password you have recovered, then go in ```Users``` and change your password.
169+
#### via API
170+
Neo can also be configured via the API, available at ```http://your.ip:8081/docs``` or ```http://myhost.mydomain.tld:8081/docs```.
206171

207172
## Troubleshooting
208173

0 commit comments

Comments
 (0)