m040601 / infopi

InfoPi Information server application

Home Page:https://yktoo.com/en/software/infopi/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

InfoPi icon

InfoPi Information server application

Build status

InfoPi is a single-page web application that displays various live data, like weather forecast and train departure times. The application is developed with Angular and can be packaged with the Electron browser to make an all-in-one executable bundle.

My own implementation was crafted for Raspberry Pi running Raspbian Stretch and a full HD monitor (1920×1080 pixels) in the portrait orientation, but it will (supposedly) run on any platform that Electron supports and properly adapt itself to a broad range of resolutions.

This is how the information page looks like:

Screenshot of the application

Dependencies

In order to build the package you will need:

Getting started

  1. Run in the terminal:
# Clone the git repository
git clone https://github.com/yktoo/infopi.git

# Install NPM modules
cd infopi
npm install

# Copy the sample configuration
cp src/environments/config.sample.ts src/environments/config.ts
  1. If you plan to use train information, request an NS API key here.
  2. Edit the file src/environments/config.ts you copied on step 1 and update values in it. Also put the NS API key there if you have one.
    The file provides some sane initial values, like refresh intervals. You are encouraged to change stuff like the weather station or bus stop as you see fit.
  3. Test the application:
npm run electron

You should see a new browser window started in the kiosk mode (use Ctrl+Q to exit or Ctrl+Shift+I to open Developer Tools and diagnose problems).

Packaging

To create a .deb package for your current architecture run npm run package.

To create a package for Raspberry Pi run npm run package:rpi.

The packages will be created as dist/installers/infopi_XXX_YYY.deb

NB: electron-installer-debian produces .debs that use the zst compression; this format isn't supported by Debian at the time of writing, and the package is missing the option required to fix this.

In order to fix that, add the '-Zxz' argument to the dpkg-deb command located at node_modules/electron-installer-debian/src/installer.js (line 114) before running npm:

const output = await spawn('fakeroot', ['dpkg-deb', '-Zxz',  '--build', this.stagingDir], this.options.logger)
//                                                  ^^^^^^^-- add this

Installing

Once you have a .deb, copy it onto your Raspberry Pi and install using:

sudo dpkg -i infopi_XXX_YYY.deb

To test your setup, run infopi from the command line or use the Application menu launcher created by the package.

Finishing touch

In order to make InfoPi start at bootup, you can add the following commands to ~/.config/lxsession/LXDE-pi/autostart:

# Optional: remote desktop server that would allow to connect to your Pi via VNC
x11vnc -forever

# InfoPi app
infopi

License

See LICENSE.

Credits

Data providers

About

InfoPi Information server application

https://yktoo.com/en/software/infopi/

License:MIT License


Languages

Language:TypeScript 77.0%Language:SCSS 10.3%Language:HTML 9.9%Language:JavaScript 2.5%Language:Shell 0.3%