Skip to content

Commit 2961a34

Browse files
authored
Merge pull request #37 from Ipmake/dev
Rebrand
2 parents 06421be + ac176d0 commit 2961a34

28 files changed

Lines changed: 140 additions & 73 deletions

.github/workflows/docker-latest.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ jobs:
3838
password: ${{ secrets.DOCKER_PASSWORD }}
3939

4040
- name: Create builder instance
41-
run: docker buildx create --name perplexedBuilder --use
41+
run: docker buildx create --name nevuBuilder --use
4242

4343
- name: Build and push the amd64 image
44-
run: docker buildx build --platform linux/amd64 -t ipmake/perplexed:latest-amd64 . --push
44+
run: docker buildx build --platform linux/amd64 -t ipmake/nevu:latest-amd64 . --push
4545

4646
- name: Build and push the arm64 image
47-
run: docker buildx build --platform linux/arm64 -t ipmake/perplexed:latest-arm64 . --push
47+
run: docker buildx build --platform linux/arm64 -t ipmake/nevu:latest-arm64 . --push
4848

4949
- name: Build and push multi-platform Docker image
50-
run: docker buildx imagetools create --tag ipmake/perplexed:latest ipmake/perplexed:latest-amd64 ipmake/perplexed:latest-arm64
50+
run: docker buildx imagetools create --tag ipmake/nevu:latest ipmake/nevu:latest-amd64 ipmake/nevu:latest-arm64

.github/workflows/docker-preview.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ jobs:
3838
password: ${{ secrets.DOCKER_PASSWORD }}
3939

4040
- name: Create builder instance
41-
run: docker buildx create --name perplexedBuilder --use
41+
run: docker buildx create --name nevuBuilder --use
4242

4343
- name: Build and push the amd64 image
44-
run: docker buildx build --platform linux/amd64 -t ipmake/perplexed:preview-amd64 . --push
44+
run: docker buildx build --platform linux/amd64 -t ipmake/nevu:preview-amd64 . --push
4545

4646
- name: Build and push the arm64 image
47-
run: docker buildx build --platform linux/arm64 -t ipmake/perplexed:preview-arm64 . --push
47+
run: docker buildx build --platform linux/arm64 -t ipmake/nevu:preview-arm64 . --push
4848

4949
- name: Build and push multi-platform Docker image
50-
run: docker buildx imagetools create --tag ipmake/perplexed:preview ipmake/perplexed:preview-amd64 ipmake/perplexed:preview-arm64
50+
run: docker buildx imagetools create --tag ipmake/nevu:preview ipmake/nevu:preview-amd64 ipmake/nevu:preview-arm64

README.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
# PerPlexed
1+
# NEVU for Plex
22
Fixing Plex's old and simple UI.
33

4-
[**Docker Hub**](https://hub.docker.com/r/ipmake/perplexed)
4+
**PerPlexed is now Nevu!**
5+
6+
[**Docker Hub**](https://hub.docker.com/r/ipmake/nevu)
57

68
*Click image for video*
7-
[![PerPlexed](assets/screenshot1.png)](https://www.youtube.com/watch?v=PuTOw3Wg9oY)
8-
![PerPlexed2](assets/screenshot2.png)
9+
[![Nevu1](assets/screenshot1.png)](https://www.youtube.com/watch?v=PuTOw3Wg9oY)
10+
![Nevu2](assets/screenshot2.png)
11+
12+
913
## Description
1014

11-
PerPlexed is a complete redesign of Plex's UI using the Plex media server's API. It comes with its own web server. As the keen eye may notice, the UI is heavily inspired by Netflix's UI. It is currently only developed for desktops and laptops. It is not optimized for mobile or TV use.
15+
Nevu is a complete redesign of Plex's UI using the Plex media server's API. It comes with its own web server. As the keen eye may notice, the UI is heavily inspired by Netflix's UI. It is currently only developed for desktops and laptops. It is not optimized for mobile or TV use.
1216

13-
PerPlexed currently supports Movie and TV Show libraries. You can also play media via the interface.
17+
Nevu currently supports Movie and TV Show libraries. You can also play media via the interface.
1418

1519
It is currently not possible to edit media metadata or switch between different Plex servers. The "+" and Star buttons on the info pages for shows and movies are placeholders and are currently not functional.
1620

@@ -24,7 +28,7 @@ Mind that this project is still in development and may be unstable.
2428
- Play media
2529
- Browse libraries
2630
- Search for media
27-
- Watch Together (PerPlexed Sync)
31+
- Watch Together (Nevu Sync)
2832
- Get Recommendations
2933
- Simple and easy to use
3034
- Pro-User features (like special shortcuts etc.)
@@ -33,10 +37,10 @@ Mind that this project is still in development and may be unstable.
3337

3438
### Docker
3539

36-
The easiest way to run PerPlexed is to use Docker. You can use the following command to run PerPlexed in a Docker container:
40+
The easiest way to run Nevu is to use Docker. You can use the following command to run Nevu in a Docker container:
3741

3842
```bash
39-
docker run --name perplexed -p 3000:3000 -e PLEX_SERVER=http://your-plex-server:32400 ipmake/perplexed
43+
docker run --name nevu -p 3000:3000 -e PLEX_SERVER=http://your-plex-server:32400 ipmake/nevu
4044
```
4145

4246
#### Environment Variables
@@ -46,7 +50,7 @@ docker run --name perplexed -p 3000:3000 -e PLEX_SERVER=http://your-plex-server:
4650
| PROXY_PLEX_SERVER | string | No | The URL of the Plex server to proxy requests to |
4751
| DISABLE_PROXY | true/false | No | If set to true, the proxy will be disabled and all requests go directly to the Plex server from the frontend (NOT RECOMMENDED) |
4852
| DISABLE_TLS_VERIFY | true/false | No | If set to true, the proxy will not check any https ssl certificates |
49-
| DISABLE_PERPLEXED_SYNC | true/false | No | If set to true, perplexed sync (watch together) will be disabled |
53+
| DISABLE_NEVU_SYNC | true/false | No | If set to true, Nevu sync (watch together) will be disabled |
5054
| DISABLE_REQUEST_LOGGING| true/false | No | If set to true, the server will not log any requests |
5155

5256

@@ -56,7 +60,7 @@ Pull requests are welcome for any feature or a bug fix. For major changes, pleas
5660

5761
## Development
5862

59-
To develop you need 2 terminals for the front and the backend of PerPlexed
63+
To develop you need 2 terminals for the front and the backend of Nevu
6064

6165
```bash
6266
# Terminal 1

assets/screenshot1.png

3.06 MB
Loading

assets/screenshot2.png

-19.6 KB
Loading

assets/screenshot3.png

658 KB
Loading

backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "backend",
3-
"version": "0.1.0",
3+
"version": "1.0.0",
44
"main": "dist/index.js",
55
"dependencies": {
66
"@prisma/client": "^6.2.1",

backend/src/index.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { PerPlexed } from './types';
77
import { randomBytes } from 'crypto';
88
import { PrismaClient } from '@prisma/client';
99
import { CheckPlexUser } from './common/plex';
10+
import fs from 'fs';
1011

1112
/*
1213
* ENVIRONMENT VARIABLES
@@ -15,7 +16,7 @@ import { CheckPlexUser } from './common/plex';
1516
* PROXY_PLEX_SERVER?: The URL of the Plex server to proxy requests to
1617
* DISABLE_PROXY?: If set to true, the proxy will be disabled and all requests go directly to the Plex server from the frontend (NOT RECOMMENDED)
1718
* DISABLE_TLS_VERIFY?: If set to true, the proxy will not check any https ssl certificates
18-
* DISABLE_PERPLEXED_SYNC?: If set to true, perplexed sync (watch together) will be disabled
19+
* DISABLE_NEVU_SYNC?: If set to true, NEVU sync (watch together) will be disabled
1920
* DISABLE_REQUEST_LOGGING?: If set to true, the server will not log any requests
2021
**/
2122
const deploymentID = randomBytes(8).toString('hex');
@@ -33,6 +34,16 @@ const prisma = new PrismaClient();
3334
app.use(express.json());
3435

3536
(async () => {
37+
const packageJson = fs.readFileSync('package.json', 'utf-8');
38+
const packageJsonParsed = JSON.parse(packageJson);
39+
40+
if(packageJsonParsed.version !== "1.0.0") {
41+
status.error = true;
42+
status.message = 'PerPlexed is now NEVU! \nPlease change the docker image from "ipmake/perplexed" to "ipmake/nevu"';
43+
console.error('PerPlexed is now NEVU! \nPlease change the docker image from "ipmake/perplexed" to "ipmake/nevu"');
44+
return
45+
}
46+
3647
if (!process.env.PLEX_SERVER) {
3748
status.error = true;
3849
status.message = 'PLEX_SERVER environment variable not set';
@@ -46,8 +57,8 @@ app.use(express.json());
4657
// check if the PLEX_SERVER environment variable is a valid URL, the URL must not end with a /
4758
if (!process.env.PLEX_SERVER.match(/^https?:\/\/[^\/]+$/)) {
4859
status.error = true;
49-
status.message = 'Invalid PLEX_SERVER environment variable. The URL must start with http:// or https:// and must not end with a /';
50-
console.error('Invalid PLEX_SERVER environment variable. The URL must start with http:// or https:// and must not end with a /');
60+
status.message = 'Invalid PLEX_SERVER environment variable. \nThe URL must start with http:// or https:// and must not end with a /';
61+
console.error('Invalid PLEX_SERVER environment variable. \nThe URL must start with http:// or https:// and must not end with a /');
5162
return;
5263
}
5364
}
@@ -56,8 +67,8 @@ app.use(express.json());
5667
// check if the PROXY_PLEX_SERVER environment variable is a valid URL, the URL must not end with a /
5768
if (!process.env.PROXY_PLEX_SERVER.match(/^https?:\/\/[^\/]+$/)) {
5869
status.error = true;
59-
status.message = 'Invalid PROXY_PLEX_SERVER environment variable. The URL must start with http:// or https:// and must not end with a /';
60-
console.error('Invalid PROXY_PLEX_SERVER environment variable. The URL must start with http:// or https:// and must not end with a /');
70+
status.message = 'Invalid PROXY_PLEX_SERVER environment variable. \nThe URL must start with http:// or https:// and must not end with a /';
71+
console.error('Invalid PROXY_PLEX_SERVER environment variable. \nThe URL must start with http:// or https:// and must not end with a /');
6172
return;
6273
}
6374

@@ -138,7 +149,7 @@ app.get('/config', (req, res) => {
138149
DEPLOYMENTID: deploymentID,
139150
CONFIG: {
140151
DISABLE_PROXY: process.env.DISABLE_PROXY === 'true',
141-
DISABLE_PERPLEXED_SYNC: process.env.DISABLE_PERPLEXED_SYNC === 'true',
152+
DISABLE_NEVU_SYNC: process.env.DISABLE_NEVU_SYNC === 'true',
142153
}
143154
});
144155
});
@@ -257,7 +268,7 @@ const server = app.listen(3000, () => {
257268
console.log('Server started on http://localhost:3000');
258269
});
259270

260-
let io = (process.env.DISABLE_PERPLEXED_SYNC === 'true') ? null : new SocketIOServer(server, {
271+
let io = (process.env.DISABLE_NEVU_SYNC === 'true') ? null : new SocketIOServer(server, {
261272
cors: {
262273
origin: '*',
263274
},
@@ -266,4 +277,5 @@ let io = (process.env.DISABLE_PERPLEXED_SYNC === 'true') ? null : new SocketIOSe
266277
export { app, server, io, deploymentID, prisma };
267278

268279
import './common/sync';
269-
import { features } from 'process';
280+
import { features } from 'process';import { readFileSync } from 'fs';
281+

frontend/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "perplexed",
2+
"name": "nevu",
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {

0 commit comments

Comments
 (0)