1
0
mirror of https://github.com/MarkParker5/STARK.git synced 2024-11-24 08:12:13 +02:00
STARK/docs/where-to-host.md
2023-09-19 17:34:35 +02:00

5.2 KiB

Where to Host

The flexibility of the Python programming language allows Stark to be hosted on virtually any system capable of running a Python interpreter. Here’s a guide on where you can run Stark:

Unix-based Systems (macOS, Linux)

Both macOS and Linux are Unix-based systems that typically come with Python pre-installed. However:

  • Ensure that your Python version is updated to at least 3.10. If it isn't, consider updating it.

  • If you wish to run Stark on boot and keep it running in the background, you can utilize systemd services to automate this process.

Windows

Windows doesn’t come with Python pre-installed, but setting it up is straightforward:

  • Download and install Python from python.org.

  • Running Stark on Windows presents its set of challenges. If you're looking to give Stark a graphical interface, consider frameworks like PyQt, Tkinter, Edifice, and others.

  • Alternatively, for a more minimalist approach, Stark can be integrated into a system tray program using libraries like pystray or infi.systray, thus enabling a voice-only interface.

Mobile Platforms

Android

As of now, a direct port of Stark for Android has not been achieved. However, you can potentially make use of the Kivy framework which is designed for building cross-platform apps using Python.

iOS

An iOS port for Stark is currently under development, with no fixed release date. Similarly to Android, you might find success using the cross-platform Kivy framework.

Raspberry Pi-Based Hosting

The Raspberry Pi, given its versatility and cost-effectiveness, can be a perfect host for Stark. Its compact size, affordability, and wide community support make it an attractive option.

To set up Stark on a Raspberry Pi:

  1. Ensure you have a Raspberry Pi with an appropriate operating system installed (e.g., Raspberry Pi OS).
  2. Connect a microphone to the Raspberry Pi. If you aim for high voice recognition accuracy, consider using a high-sensitive omnidirectional microphone.
  3. Connect a speaker or, as in the shared example, a TV soundbar to the Raspberry Pi for output.
  4. Install Python (ensure version 3.10 or later) and other necessary packages for Stark.
  5. If you wish to run Stark on boot and keep it running in the background, you can utilize systemd services to automate this process.

Server-Based Hosting

For those looking for a more robust and scalable solution, server-based hosting offers many benefits, like access to Stark from enywhere via the internet.

  1. VPS Hosting: Virtual Private Servers (VPS) allow you to run Stark on remote servers. This is useful if you need higher computational power, redundancy, or want to ensure that Stark remains operational even if local power or network fails.

  2. Home Server: You can host Stark on a dedicated home server or even on personal PCs. This can be a dedicated machine or single-board computers like the Raspberry Pi. The advantage is local access and full control over your data and operations.

  3. Custom Interfaces: With Stark running on a server, you can develop custom interfaces for access. For example, by implementing an HTTP server, as was done in the shared example, you can connect other devices to Stark. Detailed instructions can be found at Custom Interfaces.


Personal Experience

To offer some inspiration, here's a mixed setup that's been effectively used:

Stark was set to run 24/7 on a dedicated Raspberry Pi at home, connected to a high-quality sensitive omnidirectional microphone and a TV soundbar for audio output. An Arduino microphone module was also attached, enabling a double-clap mechanism to wake up Stark.

Additionally, a small HTTP server was implemented on the Raspberry Pi, allowing a mobile phone to connect to Stark at home. The native Android libraries handled Speech-to-Text (STT) and Text-to-Speech (TTS) functionalities, and the app communicated with the Raspberry Pi using transcribed text via HTTP.

To ensure Stark was accessible from anywhere in the world, ngrok was set up on the Raspberry Pi, creating a secure tunnel to the localhost, making the locally hosted Stark globally accessible.

Also, a telegram bot was implemented as an inerface for both voice and text messages, used as an additinal cross-platform remote communication way.


Such setups illustrate the flexibility and scalability of Stark. Whether you're working with a Raspberry Pi or a dedicated server, there's room for innovation and customization in how you host and interact with Stark.


Important Note

Want to see the various platforms Stark has been adapted for? Visit the STARK-PLACE repository to find implemented ports and extensions. If you’ve developed a unique runner for Stark – be it tray, GUI, Kivy-based, or any other kind – consider contributing to the community. Open a PR to STARK-PLACE; let's work together to develop the best VA platform ever, enhancing the user experience for everyone!