|
| 1 | +--- |
| 2 | +title: TerminusDB Dashboard Status |
| 3 | +nextjs: |
| 4 | + metadata: |
| 5 | + title: TerminusDB Dashboard Status |
| 6 | + description: Information about the TerminusDB Dashboard component, its discontinuation, and how to continue using it if needed. |
| 7 | + openGraph: |
| 8 | + images: https://assets.terminusdb.com/docs/technical-documentation-terminuscms-og.png |
| 9 | + alternates: |
| 10 | + canonical: https://terminusdb.org/docs/dashboard/ |
| 11 | +media: [] |
| 12 | +--- |
| 13 | + |
| 14 | +## Dashboard Discontinuation Notice |
| 15 | + |
| 16 | +As of **TerminusDB v11.2**, the built-in dashboard component has been **discontinued** and is no longer included with the core TerminusDB server distribution. |
| 17 | + |
| 18 | +### Why Was the Dashboard Discontinued? |
| 19 | + |
| 20 | +The decision to discontinue the dashboard was made to: |
| 21 | + |
| 22 | +- **Inconsistent User Interface**: Features working correctly in the core database did not work properly in the user interface, leaving a bad impression. With significantly better alternatives now on the market (such as DFRNT), we recommend to use them instead of the built in dashboard. |
| 23 | +- **Focus on Core Database Features**: Concentrate development efforts on the database engine, query languages (WOQL, Document API, GraphQL), and performance improvements |
| 24 | +- **Embrace Modern Development Practices**: Encourage users to build custom interfaces using TerminusDB's powerful APIs rather than maintaining a one-size-fits-all UI |
| 25 | +- **Reduce Maintenance Burden**: The dashboard required significant maintenance effort that could be better spent on core database functionality |
| 26 | +- **Better Client Library Support**: Improved JavaScript and Python clients now make it easier to build custom interfaces |
| 27 | + |
| 28 | +### Recommended Alternatives |
| 29 | + |
| 30 | +Instead of the built-in dashboard, we recommend: |
| 31 | + |
| 32 | +1. **Use TerminusDB Client Libraries** |
| 33 | + - [JavaScript Client](/docs/use-the-javascript-client/) - Build custom web interfaces with React, Vue, or vanilla JS |
| 34 | + - [Python Client](/docs/use-the-python-client/) - Create data management scripts and notebooks |
| 35 | + |
| 36 | +2. **GraphQL Playground Tools** |
| 37 | + - Use [GraphQL Playground](https://github.com/graphql/graphql-playground) or [GraphiQL](https://github.com/graphql/graphiql) |
| 38 | + - Connect directly to TerminusDB's GraphQL endpoint |
| 39 | + |
| 40 | +3. **Command Line Interface** |
| 41 | + - Use the [TerminusDB CLI](/docs/terminusdb-cli-commands/) for database management |
| 42 | + - Perfect for automation and scripting |
| 43 | + |
| 44 | +4. **DFRNT TerminusDB Cloud** |
| 45 | + - For a fully-featured cloud dashboard experience, consider [DFRNT TerminusDB Cloud](https://studio.dfrnt.com) |
| 46 | + - Includes team management, full localhost modelling experience with self-sovereign data, visual schema modeling, and data curation |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +## Continue Using the Dashboard (Legacy Support) |
| 51 | + |
| 52 | +If you still need to use the legacy dashboard component, you can manually download and mount the HTML release to your TerminusDB instance. |
| 53 | + |
| 54 | +{% callout type="warning" title="Legacy Component" %} |
| 55 | +The dashboard is no longer maintained or supported. Security updates, bug fixes, and new features will not be provided. Use at your own risk. |
| 56 | +{% /callout %} |
| 57 | + |
| 58 | +### Step 1: Download the Dashboard |
| 59 | + |
| 60 | +Download the last stable release (v6.0.10) of the dashboard: |
| 61 | + |
| 62 | +```bash |
| 63 | +# Download the pre-built dashboard release |
| 64 | +curl -L https://github.com/terminusdb/terminusdb-dashboard/releases/download/v6.0.10/release.tar.gz -o dashboard.tar.gz |
| 65 | + |
| 66 | +# Create dashboard directory and extract the archive into it |
| 67 | +mkdir -p dashboard |
| 68 | +tar -xzf dashboard.tar.gz -C dashboard |
| 69 | + |
| 70 | +# The dashboard directory now contains all the dashboard files |
| 71 | +``` |
| 72 | + |
| 73 | +Alternatively, you can download it directly from your browser: |
| 74 | +[https://github.com/terminusdb/terminusdb-dashboard/releases/download/v6.0.10/release.tar.gz](https://github.com/terminusdb/terminusdb-dashboard/releases/download/v6.0.10/release.tar.gz) |
| 75 | + |
| 76 | +{% callout type="note" title="Pre-built Release" %} |
| 77 | +This release is already built and ready to use. No need to run npm install or build steps. |
| 78 | +{% /callout %} |
| 79 | + |
| 80 | +### Step 2: Mount to Docker Container |
| 81 | + |
| 82 | +If you're running TerminusDB in Docker, mount the dashboard directory: |
| 83 | + |
| 84 | +#### Using Docker Run |
| 85 | + |
| 86 | +```bash |
| 87 | +docker run -it \ |
| 88 | + --name terminusdb \ |
| 89 | + -p 6363:6363 \ |
| 90 | + -v ~/dashboard:/app/terminusdb/dashboard \ |
| 91 | + -e TERMINUSDB_DASHBOARD_ENABLED=true \ |
| 92 | + terminusdb/terminusdb-server:v11_2_rc2 |
| 93 | +``` |
| 94 | + |
| 95 | +#### Using Docker Compose |
| 96 | + |
| 97 | +Create or update your `docker-compose.yml`: |
| 98 | + |
| 99 | +```yaml |
| 100 | +version: '3' |
| 101 | +services: |
| 102 | + terminusdb: |
| 103 | + image: terminusdb/terminusdb-server:v11.2 |
| 104 | + container_name: terminusdb |
| 105 | + ports: |
| 106 | + - "6363:6363" |
| 107 | + volumes: |
| 108 | + - terminusdb_storage:/app/terminusdb/storage |
| 109 | + - ./dashboard:/app/terminusdb/dashboard |
| 110 | + environment: |
| 111 | + - TERMINUSDB_DASHBOARD_ENABLED=true |
| 112 | + - TERMINUSDB_ADMIN_PASS=mypassword |
| 113 | +volumes: |
| 114 | + terminusdb_storage: |
| 115 | +``` |
| 116 | +
|
| 117 | +Then start the container: |
| 118 | +
|
| 119 | +```bash |
| 120 | +docker-compose up -d |
| 121 | +``` |
| 122 | + |
| 123 | +### Step 3: Enable the Dashboard |
| 124 | + |
| 125 | +The dashboard must be explicitly enabled via an environment variable: |
| 126 | + |
| 127 | +| Environment Variable | Value | Description | |
| 128 | +|---------------------|-------|-------------| |
| 129 | +| `TERMINUSDB_DASHBOARD_ENABLED` | `true` | Enables the dashboard component | |
| 130 | + |
| 131 | +Without this variable set to `true`, TerminusDB will serve a discontinuation notice instead of the dashboard. |
| 132 | + |
| 133 | +### Step 4: Access the Dashboard |
| 134 | + |
| 135 | +Once configured, access the dashboard at: |
| 136 | + |
| 137 | +``` |
| 138 | +http://localhost:6363/dashboard |
| 139 | +``` |
| 140 | + |
| 141 | +The default credentials are: |
| 142 | +- **Username**: `admin` |
| 143 | +- **Password**: The value set in `TERMINUSDB_ADMIN_PASS` (default: `root`) |
| 144 | + |
| 145 | +--- |
| 146 | + |
| 147 | +## Directory Structure |
| 148 | + |
| 149 | +When mounting the dashboard, ensure the following structure: |
| 150 | + |
| 151 | +``` |
| 152 | +/app/terminusdb/dashboard/ |
| 153 | +├── index.html # Main dashboard entry point |
| 154 | +├── assets/ # CSS, JS, and other assets |
| 155 | +│ ├── css/ |
| 156 | +│ ├── js/ |
| 157 | +│ └── images/ |
| 158 | +└── ... # Other dashboard files |
| 159 | +``` |
| 160 | + |
| 161 | +--- |
| 162 | + |
| 163 | +## Troubleshooting |
| 164 | + |
| 165 | +### Dashboard Shows "Discontinued" Message |
| 166 | + |
| 167 | +**Cause**: The environment variable is not set correctly. |
| 168 | + |
| 169 | +**Solution**: Ensure `TERMINUSDB_DASHBOARD_ENABLED=true` is set in your Docker environment. |
| 170 | + |
| 171 | +### 404 or File Not Found Errors |
| 172 | + |
| 173 | +**Cause**: Dashboard files are not mounted correctly. |
| 174 | + |
| 175 | +**Solution**: |
| 176 | +1. Verify the dashboard files exist: `ls dashboard/index.html` |
| 177 | +2. Check the volume mount path in Docker |
| 178 | +3. Ensure the container can read the mounted directory |
| 179 | + |
| 180 | +### Assets Not Loading (CSS/JS) |
| 181 | + |
| 182 | +**Cause**: Asset paths are incorrect or files are missing. |
| 183 | + |
| 184 | +**Solution**: |
| 185 | +1. Verify the `assets` directory exists: `ls dashboard/assets` |
| 186 | +2. Check browser console for specific file errors |
| 187 | +3. Ensure the dashboard was extracted correctly from the release |
| 188 | + |
| 189 | +### Cannot Connect to TerminusDB |
| 190 | + |
| 191 | +**Cause**: Server is not running or port is not exposed. |
| 192 | + |
| 193 | +**Solution**: |
| 194 | +1. Check TerminusDB is running: `docker ps` |
| 195 | +2. Verify port 6363 is mapped: `docker port terminusdb` |
| 196 | +3. Check firewall settings |
| 197 | + |
| 198 | +--- |
| 199 | + |
| 200 | +## Migration Path |
| 201 | + |
| 202 | +For users migrating away from the dashboard, here's a typical workflow transition: |
| 203 | + |
| 204 | +### Before (Using Dashboard) |
| 205 | + |
| 206 | +1. Log in to dashboard at `http://localhost:6363/dashboard` |
| 207 | +2. Click through UI to create databases |
| 208 | +3. Use visual schema builder |
| 209 | +4. Use document editor for data entry |
| 210 | + |
| 211 | +### After (Using Client Libraries) |
| 212 | + |
| 213 | +1. **Database Management** - Use CLI or client libraries: |
| 214 | + ```bash |
| 215 | + # CLI approach |
| 216 | + terminusdb db create admin/mydb |
| 217 | + |
| 218 | + # Python approach |
| 219 | + from terminusdb_client import Client |
| 220 | + client = Client("http://localhost:6363") |
| 221 | + client.connect(user="admin", password="root") |
| 222 | + client.create_database("mydb") |
| 223 | + ``` |
| 224 | + |
| 225 | +2. **Schema Definition** - Define schema in code: |
| 226 | + ```python |
| 227 | + # Python schema definition |
| 228 | + from terminusdb_client.woqlschema import WOQLSchema, DocumentTemplate |
| 229 | + |
| 230 | + schema = WOQLSchema() |
| 231 | + |
| 232 | + class Person(DocumentTemplate): |
| 233 | + _schema = schema |
| 234 | + name: str |
| 235 | + age: int |
| 236 | + |
| 237 | + client.insert_document(schema.to_dict()) |
| 238 | + ``` |
| 239 | + |
| 240 | +3. **Data Operations** - Use GraphQL or Document API: |
| 241 | + ```python |
| 242 | + # Insert documents |
| 243 | + client.insert_document({ |
| 244 | + "@type": "Person", |
| 245 | + "name": "Alice", |
| 246 | + "age": 30 |
| 247 | + }) |
| 248 | + |
| 249 | + # Query with GraphQL |
| 250 | + result = client.query_document({ |
| 251 | + "type": "Person", |
| 252 | + "query": {"age": {"@gt": 25}} |
| 253 | + }) |
| 254 | + ``` |
| 255 | + |
| 256 | +--- |
| 257 | + |
| 258 | +## Additional Resources |
| 259 | + |
| 260 | +- [JavaScript Client Documentation](/docs/use-the-javascript-client/) |
| 261 | +- [Python Client Documentation](/docs/use-the-python-client/) |
| 262 | +- [GraphQL Query Guide](/docs/graphql-basics/) |
| 263 | +- [WOQL Query Guide](/docs/woql-basics/) |
| 264 | +- [TerminusDB CLI Reference](/docs/terminusdb-cli-commands/) |
| 265 | +- [Document API Reference](/docs/document-graph-api/) |
| 266 | + |
| 267 | +For questions or support, join our community: |
| 268 | +- [Discord Community](https://discord.gg/terminusdb) |
| 269 | +- [GitHub Discussions](https://github.com/terminusdb/terminusdb/discussions) |
| 270 | + |
| 271 | +--- |
| 272 | + |
| 273 | +{% callout type="note" title="Looking Forward" %} |
| 274 | +TerminusDB continues to evolve with powerful new features including improved query languages, better performance, and enhanced collaboration capabilities. We believe focusing on these core strengths will better serve our users in the long term. |
| 275 | +{% /callout %} |
0 commit comments