ThingSpeak Server
Go to file
Christian Meyer 6ace6bbb52 Behebt NULL key-Datenbank-Problem
Integriert den Fix zum Aufruf von /config/initializers/abstract_mysql2_adapter

https://stackoverflow.com/questions/37315546/uninitialized-constant-activerecordconnectionadaptersmysql2adapternative-d
2023-05-24 19:13:47 +02:00
app Merge branch 'master' of github.com:iobridge/thingspeak 2015-07-09 16:09:28 -04:00
autotest update with changes from Production branch 2014-02-17 12:05:39 -05:00
bin check bin folder in (part of Rails 4 upgrade) 2015-02-12 08:46:41 -05:00
config Behebt NULL key-Datenbank-Problem 2023-05-24 19:13:47 +02:00
db updates from Production 2015-03-13 10:19:45 -04:00
lib fix error when user doesn't own channel and tries to view api keys 2014-06-29 16:21:27 -04:00
public check last_write_at field when applying rate limits to channels 2015-03-11 16:27:47 -04:00
script initial checkin of full application 2011-03-27 16:56:15 -04:00
spec updates from Production 2015-03-23 10:37:17 -04:00
test updates from Production 2014-10-09 13:25:48 -04:00
vendor/plugins remove old plugin 2014-07-30 15:37:19 -04:00
.gitignore Updating gem 2013-02-11 20:10:11 -05:00
.ruby-gemset update with changes from Production branch 2014-02-17 12:05:39 -05:00
.ruby-version update with changes from Production branch 2014-02-17 12:05:39 -05:00
Gemfile Änderungen für Ubuntu 16.04 2023-05-24 19:04:21 +02:00
Gemfile.lock update gems; fix timeout errors 2014-10-06 11:42:02 -04:00
LICENSE Edited LICENSE via GitHub 2011-03-27 16:14:07 -07:00
README.md Anpassungen für Ubuntu 16.04 2023-05-24 18:59:30 +02:00
Rakefile initial checkin of full application 2011-03-27 16:56:15 -04:00
config.ru initial checkin of full application 2011-03-27 16:56:15 -04:00

README.md

ThingSpeak

ThingSpeak ist eine OpenSource "Internet of Things" Anwendung und API, mit der Daten von "Dingen" per HTTP über das Internet (oder LAN) empfangen und gespeichert werden können. Mit ThingSpeak, kann man verschiedene Anwendungen erstellen, die Sensor-Daten speichern, Standortdaten verwenden oder ein "soziales Netzwerk der Dinge" mit Status Updates versorgt.

Die ThinkSpeak API empfängt und speichert numerische und alphanumerische Daten und erlaubt eine Datenverarbeitung (Zeitskalen, Duchschnittswerte, Median, Summen und runden). Jeder ThingSpeak Channel unterstützt bis zu 8 Datenfelder, Breitengrad, Längengrad, Höhe und Status. Zur Integration in weitere Anwendungen werden JSON, XML, und das CSV Format unterstützt.

Unterstützung für ThingSpeak gibt es bei der ThingSpeak Community, wo sich ein Blog, ein Forum, Dokumentation, und Tutorials finden.

Besonderheiten zur Installation

Dieser Fork ist dazu gedacht, auf einem eigenen Debian 12 Server installiert zu werden. Leider ist das IOBridge-Repository veraltet und nur für Ubuntu 12.04 LTS geeignet. Hauptproblem sind die veralteten Programme und Bibliotheken, auf die ThingSpeak aufbaut. Namentlich ist das libssl1.0-dev, aber auch Ruby 2 und Rails 4.

Aktuell ist die Basis die Installation auf Ubuntu 16.04 Darüber hinaus gibt es auch weitere Ressoucen, die bei einem OS-Upgrade hilfreich sind:

Neben einer Erfolgsmeldung für Debian 10 gibt es ein aktuelleres Repository von ELR, aber auch eine ausführlichere Schritt-für-Schritt-Anleitung für Ubuntu 14.04 LTS. Aber auch ein paar Hilfestellungen zum Umgang mit veränderten Datenbanken (hier und dort) bzw. ActiveAdmin

Das Problem mit openssl1.0-dev kann vermutlich mit den Quellen des veralteten Debian 9 (Stretch) umgangen werden:

deb http://archive.debian.org/debian stretch main
deb http://archive.debian.org/debian-security stretch/updates main

Die genauen in Stretch verfügbaren Programmversionen findet man heraus mit: apt cache show ruby. Danach installiert man diese mit:

??? apt install rails=2:4.2.7.1-1+deb9u5 ruby-rails=2:4.2.7.1-1+deb9u5 ruby=1:2.3.3
??? apt install ruby: mit stretch-Quellen und Version (wegen Abhängigkeit aus Bullseye)
??? apt install rails: nur mit stretch-Quellen (wegen Dependency-Chaos)

Vorbereitungen

  1. Installiere Ruby 2, RubyGems, Rails 4, git, und eine Datenbank wie MySQL / MariaDB
  2. Lade die Anwendung mit git herunter: git clone https://rlp.schule/gitea/c_meyer/thingspeak.git
  3. Wechsele in das Verzeichnis thingspeak und installiere die entsprechenden gems: sudo bundle install

Konfiguration

  1. Set your database configuration file at config/database.yml (see config/database.yml.example for an example)
  2. Erstelle die Datenbank: rake db:create
  3. Erstelle die Datenbank-Tabellen: rake db:schema:load

Starte die Anwendung

  1. Starte den Server: rails server

Danach ist die Anwendung erreichbar unter http://localhost:3000/

Ändere den Text der Anwendung

Make changes to config/locales/en.yml To avoid errors, please ensure your lines start with spaces, not tabs. Set your application name using the 'application_name' key.

(Optional) Email Setup

Set your domain, user_name, and password in config/environment.rb

(Optional) Admin Setup

Open a rails console: rails console or RAILS_ENV=production rails console, depending on your environment Add the admin user: AdminUser.create!(email: 'YOUR_ADMIN_EMAIL@EXAMPLE.COM', password: 'YOUR_PASSWORD', password_confirmation: 'YOUR_PASSWORD') Exit the rails console: exit Login via the admin web interface at: "http://YOUR_DOMAIN.COM/admin"

Installation auf Debian 11

Arbeiten als root:

command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
curl -sSL https://get.rvm.io | bash -s stable --ruby
rvm install ruby-2.1.0

sudo apt update
sudo apt dist-upgrade
sudo apt purge ruby
sudo apt-get -y install build-essential mysql-server mysql-client libmysqlclient-dev libxml2-dev libxslt-dev git-core curl rubygems gnupg2

Arbeiten als user:

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm install ruby 2.1.0
git clone https://rlp.schule/gitea/c_meyer/thingspeak.git

cd thingspeak
gem install bundler
rvm --force rubygems 2.1.0
gem install bundler -v 1.17.3
gem install jquery-rails -v 3.0.4
gem install tzinfo -v 1.2.2
gem install 'activerecord-native_db_types_override'; für die Datenbank
bundle update mysql2
bundle install

cp config/database.yml.example config/database.yml
rake db:create
# mysql -u root -p
rake db:schema:load
rails server webrick

Upgrading existing installations

git pull origin master
bundle install
rake db:migrate

If your server is active you can restart it by going to the active terminal, hitting Ctrl-c, and then typing: rails server