|
1 | 1 | # NethLink |
2 | 2 |
|
3 | | -Link NethServer systems and provide remote access tools |
| 3 | + |
4 | 4 |
|
5 | | -## Recommended IDE Setup |
| 5 | + |
| 6 | +[](LICENSE) |
6 | 7 |
|
7 | | -- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) |
| 8 | +NethLink is a tool designed to **link NethServer systems** and provide **remote access tools**. This project aims to offer a simple yet powerful user interface for managing NethServer systems more efficiently. |
8 | 9 |
|
9 | | -## Project Setup |
| 10 | +## 🔧 Installation |
10 | 11 |
|
11 | | -### Install |
| 12 | +### macOS (Homebrew) |
| 13 | + |
| 14 | +To install NethLink on macOS, use **Homebrew**: |
12 | 15 |
|
13 | 16 | ```bash |
14 | | -$ npm install |
| 17 | +brew install --cask nethlink |
15 | 18 | ``` |
16 | 19 |
|
17 | | -### Development |
| 20 | +### Windows (Winget) |
| 21 | + |
| 22 | +For Windows, you can install NethLink via **Winget**: |
18 | 23 |
|
19 | 24 | ```bash |
20 | | -$ npm run dev |
| 25 | +winget install NethLink |
21 | 26 | ``` |
22 | 27 |
|
23 | | -### Build |
| 28 | +### Linux (Manual Installation) |
| 29 | + |
| 30 | +For Linux, you can install NethLink manually using the following steps: |
| 31 | + |
| 32 | +1. Download the NethLink AppImage using `curl` or `wget`: |
| 33 | + |
| 34 | + Using `curl`: |
| 35 | + ```bash |
| 36 | + curl -L -o nethlink.AppImage https://github.com/NethServer/nethlink/releases/download/v<VERSION>/nethlink-<VERSION>.AppImage |
| 37 | + ``` |
| 38 | + |
| 39 | + Using `wget`: |
| 40 | + ```bash |
| 41 | + wget https://github.com/NethServer/nethlink/releases/download/v<VERSION>/nethlink-<VERSION>.AppImage |
| 42 | + ``` |
| 43 | + |
| 44 | +2. Make the AppImage executable: |
| 45 | + |
| 46 | + ```bash |
| 47 | + chmod +x nethlink.AppImage |
| 48 | + ``` |
| 49 | + |
| 50 | +3. Run the application: |
| 51 | + |
| 52 | + ```bash |
| 53 | + ./nethlink.AppImage |
| 54 | + ``` |
| 55 | + |
| 56 | +This will allow you to run NethLink on your Linux machine. You can also move the `nethlink.AppImage` to a directory in your `PATH` to make it easier to run from anywhere. |
| 57 | + |
| 58 | + |
| 59 | +## 📦 Requirements |
| 60 | + |
| 61 | +- **macOS**: Version 10.15 (Catalina) or later. |
| 62 | +- **Windows**: Windows 10 or later. |
| 63 | +- **Rosetta**: Required on macOS for ARM architectures. |
| 64 | + |
| 65 | +⚙️ Usage |
| 66 | + |
| 67 | +1. **Launch the app**: After installation, open `NethLink.app` on macOS or the executable on Windows. |
| 68 | +2. **Connect your NethServer**: Enter your server's hostname, your username and your password |
| 69 | +4. **Access your server**: Once configured, you can access your NethServer with ease. |
| 70 | + |
| 71 | +## 🛠 Contributing |
| 72 | + |
| 73 | +NethLink is an open-source project and we welcome contributions from the community. To contribute, follow these steps: |
| 74 | + |
| 75 | +1. **Fork the repository**. |
| 76 | +2. **Create a branch** for your feature or bugfix (`git checkout -b feature/your-feature`). |
| 77 | +3. **Commit your changes** (`git commit -am 'Add a new feature'`). |
| 78 | +4. **Push** the branch (`git push origin feature/your-feature`). |
| 79 | +5. **Open a pull request**. |
| 80 | + |
| 81 | +## 📄 License |
| 82 | + |
| 83 | +Distributed under the **MIT License**. See the [LICENSE](LICENSE) file for more details. |
| 84 | + |
| 85 | +## 🤝 Contact |
| 86 | + |
| 87 | +- **Website**: [https://github.com/NethServer/nethlink](https://github.com/NethServer/nethlink) |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +## Development |
| 92 | + |
| 93 | +To get started with NethLink development, follow the steps below. |
| 94 | + |
| 95 | +### Install Dependencies |
| 96 | + |
| 97 | +Install the project dependencies using npm: |
24 | 98 |
|
25 | 99 | ```bash |
26 | | -# For windows |
27 | | -$ npm run build:win |
| 100 | +npm install |
| 101 | +``` |
| 102 | + |
| 103 | +### Development Mode |
| 104 | + |
| 105 | +To run the application in development mode, use: |
| 106 | + |
| 107 | +```bash |
| 108 | +npm run dev |
| 109 | +``` |
| 110 | + |
| 111 | +### Build the Application |
| 112 | + |
| 113 | +To build the application for different platforms: |
| 114 | + |
| 115 | +```bash |
| 116 | +# For Windows |
| 117 | +npm run build:win |
28 | 118 |
|
29 | 119 | # For macOS |
30 | | -$ npm run build:mac |
| 120 | +npm run build:mac |
31 | 121 |
|
32 | 122 | # For Linux |
33 | | -$ npm run build:linux |
| 123 | +npm run build:linux |
34 | 124 | ``` |
35 | 125 |
|
36 | | -### Release |
| 126 | +### Release Versions |
| 127 | + |
| 128 | +To release a new version of the application, use the following commands: |
37 | 129 |
|
38 | 130 | ```bash |
39 | | -# For major |
40 | | -$ npm run publish:major |
| 131 | +# For major release |
| 132 | +npm run publish:major |
41 | 133 |
|
42 | | -# For minor |
43 | | -$ npm run publish:minor |
| 134 | +# For minor release |
| 135 | +npm run publish:minor |
44 | 136 |
|
45 | | -# For patch |
46 | | -$ npm run publish:patch |
| 137 | +# For patch release |
| 138 | +npm run publish:patch |
47 | 139 | ``` |
48 | 140 |
|
49 | | -### Env variables ONLY FOR TEST PURPOSE |
| 141 | +## ⚙️ Env Variables |
50 | 142 |
|
51 | | -> `DEV=true`\ |
52 | | -> run app in DEV mode |
| 143 | +Use the following environment variables for testing purposes: |
53 | 144 |
|
54 | | -> `INSTANCE=<numer_of_the_instance>`\ |
55 | | -> enables multiple instances of the process. Use this function with extreme caution, it can cause many problems - for testing purposes only. When this variable is set, a new `user_data_<instance_number>.json` is created and the instance only changes its related file. |
| 145 | +> `DEV=true` |
| 146 | +> Runs the app in development mode. |
56 | 147 |
|
57 | | -### User data folders |
| 148 | +> `INSTANCE=<number_of_the_instance>` |
| 149 | +> Enables multiple instances of the process. Use this function with caution, as it can cause issues. This is only for testing purposes. When this variable is set, a new `user_data_<instance_number>.json` is created and the instance only changes its related file. |
58 | 150 |
|
59 | | -- Windows: `%APPDATA%/nethlink/` |
60 | | -- Linux: `~/.config/nethlink/` |
61 | | -- macOS: `~/Library/Application Support/nethlink/` |
| 151 | +## 🗂 User Data Folders |
62 | 152 |
|
| 153 | +The user data folders for different operating systems are as follows: |
63 | 154 |
|
64 | | -We then have two files: user_data.json and available_users.json the first file contains the data of the currently logged in user, the other contains the data of all available users in that device who have logged in at least once |
| 155 | +- **Windows**: `%APPDATA%/nethlink/` |
| 156 | +- **Linux**: `~/.config/nethlink/` |
| 157 | +- **macOS**: `~/Library/Application Support/nethlink/` |
65 | 158 |
|
| 159 | +There are two files: `user_data.json` and `available_users.json`. The first file contains the data of the currently logged-in user, while the second contains data for all users who have logged in at least once on the device. |
0 commit comments