Jak uruchomić węzeł.aplikacja js jako usługa w tle?
Ponieważ ten post zyskał wiele uwagi przez lata, wymieniłem najlepsze rozwiązania na platformę na dole tego postu.
Oryginalny post :
Chcę swój węzeł.js server do uruchomienia w tle, tzn.: kiedy zamykam terminal chcę, aby mój serwer działał dalej. Wygooglowałem to i wymyśliłem ten tutorial , jednak nie działa zgodnie z przeznaczeniem. Więc zamiast używać tego skryptu demona, myślałem, że po prostu użyłem przekierowania wyjścia (the2>&1 >> file
part), ale to też nie kończy się-dostaję pustą linię w moim terminalu, jakby czekała na wyjście / błędy.
Próbowałem również umieścić proces w tle, ale jak tylko zamknę mój terminal, proces również jest zabijany.
Więc jak mogę pozostawić to uruchomione, gdy wyłączę mój komputer lokalny?
Top solutions :
- Systemd (Linux)
- Launchd (Mac)
- node-windows (Windows)
- PM2 (Node.js)
24 answers
Kopiowanie własnej odpowiedzi z Jak uruchomić węzeł.aplikacja js jako własny proces?
2015 odpowiedź: prawie każda dystrybucja Linuksa jest wyposażona w systemd, co oznacza, że forever, monit, itp. nie są już potrzebne-Twój OS już obsługuje te zadania.
Utwórz plik myapp.service
(Oczywiście zastępując 'myapp' nazwą Twojej aplikacji):
[Unit]
Description=My app
[Service]
ExecStart=/var/www/myapp/app.js
Restart=always
User=nobody
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nogroup
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp
[Install]
WantedBy=multi-user.target
Uwaga Jeśli jesteś nowy w Unix: /var/www/myapp/app.js
powinien mieć #!/usr/bin/env node
na pierwszej linii.
Kopia Twój plik serwisowy do /etc/systemd/system
.
Zacznij od systemctl start myapp
.
Umożliwia uruchamianie przy starcie z systemctl enable myapp
.
Zobacz logi z journalctl -u myapp
To jest wzięte z Jak wdrażamy aplikacje węzłowe w systemie Linux, edycja 2018, zawiera również polecenia do generowania AWS / DigitalOcean / Azure CloudConfig do budowania serwerów Linux / node (w tym pliku .service
).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-12 16:09:37
Możesz użyć Forever, prostego narzędzia CLI do zapewnienia, że dany skrypt węzła działa w sposób ciągły (tj.): https://www.npmjs.org/package/forever
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-21 17:26:53
UPDATE - Jak wspomniano w jednej z poniższych odpowiedzi, PM2 ma naprawdę ładną funkcjonalność, której brakuje w forever. Rozważ użycie go.
Oryginalna Odpowiedź
Użyj nohup :
nohup node server.js &
EDIT chciałem dodać, że przyjęta odpowiedź jest naprawdę droga. Używam forever na instancjach, które muszą pozostać na nogach. Lubię robić npm install -g forever
więc jest w ścieżce węzła, a potem po prostu robić forever start server.js
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-17 11:19:19
Może to nie jest akceptowany sposób, ale robię to z screenem, zwłaszcza w trakcie rozwoju, ponieważ mogę go przywrócić i oszukać, jeśli to konieczne.
screen
node myserver.js
>>CTRL-A then hit D
Ekran odłączy się i przetrwa wylogowanie. Następnie możesz go odzyskać, wykonując screen-R. Dotknij podręcznika ekranu, aby uzyskać więcej szczegółów. Możesz nazwać ekrany i tak dalej, jeśli chcesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-25 19:42:57
2016 aktualizacja: Seria node-windows / mac / linux wykorzystuje wspólne API we wszystkich systemach operacyjnych, więc jest to absolutnie odpowiednie rozwiązanie. Jednak; node-linux generuje pliki INIT systemv. Ponieważ systemd nadal rośnie popularność, jest realnie lepszą opcją na Linuksie. PR jest mile widziany jeśli ktoś chce dodać obsługę systemd do node-linux: -)
Oryginalny Wątek:
To już dość stary wątek, ale node-windows zapewnia inny sposób aby utworzyć usługi w tle w systemie Windows. Jest luźno oparty na koncepcji nssm
używania owijki exe
wokół skryptu węzła. Jednak; zamiast tego używa winsw.exe
i zapewnia konfigurowalną owijarkę węzłów dla bardziej szczegółowej kontroli nad tym, jak proces rozpoczyna/zatrzymuje się na awariach. Procesy te są dostępne jak każda inna usługa:
Moduł również piecze w logowaniu zdarzeń:
Demonizacja skryptu odbywa się za pomocą kodu. Na przykład:
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'Hello World',
description: 'The nodejs.org example web server.',
script: 'C:\\path\\to\\my\\node\\script.js'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
// Listen for the "start" event and let us know when the
// process has actually started working.
svc.on('start',function(){
console.log(svc.name+' started!\nVisit http://127.0.0.1:3000 to see it in action.');
});
// Install the script as a service.
svc.install();
Moduł obsługuje takie rzeczy jak ograniczanie restartów (aby złe skrypty nie obciążały serwera) i zwiększanie odstępów czasowych między restartami.
Ponieważ usługi node-windows działają jak każde inne, możliwe jest zarządzanie / monitorowanie usługi za pomocą dowolnego oprogramowania, którego już używasz.
Wreszcie, nie ma make
zależności. Innymi słowy, prosty npm install -g node-windows
zadziała. Nie potrzebujesz Visual Studio,. NET lub node-gyp magic, aby to zainstalować. Poza tym to MIT i Na licencji BSD.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-12 16:49:04
UPDATE : zaktualizowałem, aby uwzględnić najnowsze z pm2:
W wielu przypadkach użycie usługi systemd jest najprostszym i najbardziej odpowiednim sposobem zarządzania procesem węzła. dla tych, którzy uruchamiają wiele procesów węzłowych lub niezależnie działające mikroserwisy węzłów w jednym środowisku, pm2 jest bardziej funkcjonalnym narzędziem.
Https://github.com/unitech/pm2
-
[[18]}ma naprawdę przydatną funkcję monitorowania -> ładny ' gui ' do monitorowania wielu procesów z linii poleceń za pomocą
- zorganizowane Zarządzanie logami - >
pm2 logs
- inne rzeczy:
- Konfiguracja zachowania
- obsługa map źródłowych
- Kompatybilny Z PaaS
- Watch & Reload
- Moduł System
- Max memory reload
- Tryb Klastra
- Hot reload
- Workflow rozwoju
- Skrypty Startowe
- Automatyczne uzupełnianie
- Workflow wdrożenia
- Keymetrics monitoring
- API
pm2 monit
lub listy procesów za pomocą pm2 list
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-16 16:24:11
Jeśli używasz OSX, to najprostszym sposobem wytworzenia prawdziwego procesu systemowego jest użycie launchd
do jego uruchomienia.
Zbuduj plist w ten sposób i umieść go w /Library/LaunchDaemons o nazwie top-level-domain.your-domain.application.plist
(Musisz być root podczas umieszczania go):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>top-level-domain.your-domain.application</string>
<key>WorkingDirectory</key>
<string>/your/preferred/workingdirectory</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>your-script-file</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Kiedy skończysz, wydaj to (jako root):
launchctl load /Library/LaunchDaemons/top-level-domain.your-domain.application.plist
launchctl start top-level-domain.your-domain.application
A Ty uciekasz.
I nadal będziesz działać po ponownym uruchomieniu.
Inne opcje w pliście można znaleźć na stronie man tutaj: https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man5/launchd.plist.5.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-23 15:07:34
Używam po prostu modułu daemon npm:
var daemon = require('daemon');
daemon.daemonize({
stdout: './log.log'
, stderr: './log.error.log'
}
, './node.pid'
, function (err, pid) {
if (err) {
console.log('Error starting daemon: \n', err);
return process.exit(-1);
}
console.log('Daemonized successfully with pid: ' + pid);
// Your Application Code goes here
});
Ostatnio używam również mon(1) z TJ Holowaychuk do uruchamiania i zarządzania prostymi aplikacjami węzłów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-24 14:21:00
Używam Supervisor do rozwoju. To po prostu działa. Kiedy kiedykolwiek wprowadzić zmiany do .js file Supervisor automatycznie uruchamia aplikację ponownie po załadowaniu tych zmian.
Install:
Sudo npm install supervisor-g
Możesz łatwo zmusić go do oglądania innych rozszerzeń za pomocą-e. innym poleceniem, którego często używam, jest-i do ignorowania pewnych folderów.
Możesz użyć nohup i supervisor, aby uruchomić aplikację node tło nawet po wylogowaniu.
Sudo nohup supervisor myapp.js &
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-05 16:22:18
Jeśli chcesz po prostu uruchamiać skrypt nieprzerwanie, aż do jego zakończenia, możesz użyć nohop
, Jak już wspomniano w odpowiedziach tutaj. Jednak żadna z odpowiedzi nie dostarcza pełnego polecenia, które również rejestruje stdin
i stdout
.
nohup node index.js >> app.log 2>&1 &
-
>>
oznacza dołączenie doapp.log
. -
2>&1
upewnia się, że błędy są również wysyłane dostdout
i dodawane doapp.log
. - zakończenie
&
upewnia się, że bieżący terminal jest odłączony od polecenia, więc możesz kontynuować pracę.
Jeśli chcesz uruchomić serwer węzła (lub coś, co powinno się uruchomić z powrotem po ponownym uruchomieniu serwera) powinieneś użyć systemd / systemctl.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-13 15:05:26
Węzeł.js jako usługa w tle w WINDOWS XP
- Kudos goes to Hacksparrow at: http://www.hacksparrow.com/install-node-js-and-npm-on-windows.html do samouczka instalującego węzeł.js + npm Dla windows.
- Kudos goes to Tatham Oddie at: http://blog.tatham.oddie.com.au/2011/03/16/node-js-on-windows / dla nnsm.implementacja exe.
Instalacja:
- Install WGET http://gnuwin32.sourceforge.net/packages/wget.htm poprzez plik wykonywalny instalatora
- Install GIT http://code.google.com/p/msysgit/downloads/list poprzez plik wykonywalny instalatora
- zainstaluj NSSM http://nssm.cc/download/?page=download poprzez kopiowanie nnsm.exe do folderu %windir% / system32
-
Utwórz c:\node\helloworld.js
// http://howtonode.org/hello-node var http = require('http'); var server = http.createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.end("Hello World\n"); }); server.listen(8000); console.log("Server running at http://127.0.0.1:8000/");
-
Otwórz konsolę poleceń i wpisz następujące (setx tylko wtedy, gdy Resource Kit jest zainstalowane)
C:\node> set path=%PATH%;%CD% C:\node> setx path "%PATH%" C:\node> set NODE_PATH="C:\Program Files\nodejs\node_modules" C:\node> git config --system http.sslcainfo /bin/curl-ca-bundle.crt C:\node> git clone --recursive git://github.com/isaacs/npm.git C:\node> cd npm C:\node\npm> node cli.js install npm -gf C:\node> cd .. C:\node> nssm.exe install node-helloworld "C:\Program Files\nodejs\node.exe" c:\node\helloworld.js C:\node> net start node-helloworld
-
Sprytna partia goodie jest do tworzenia c:\node\ServiceMe.cmd
@echo off nssm.exe install node-%~n1 "C:\Program Files\nodejs\node.exe" %~s1 net start node-%~n1 pause
Zarządzanie Serwisem:
- same usługi są teraz dostępne przez Start - > Run -> usługi.msc lub poprzez Start - > Run - > MSCONFIG - > Services (i zaznacz "Ukryj Wszystkie Usługi Microsoft").
- skrypt będzie poprzedzał każdy węzeł wykonany za pomocą skryptu wsadowego "węzeł -".
- Podobnie można je znaleźć w rejestrze: "HKLM \ SYSTEM \ CurrentControlSet\Services\node-xxxx "
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-18 21:44:51
Przyjęta odpowiedź jest prawdopodobnie najlepszą odpowiedzią na produkcję, ale dla szybkiego włamania wykonującego prace deweloperskie, znalazłem to:
nodejs scriptname.js &
nie zadziałało, ponieważ NodeJS wydawał się pożerać&, więc to coś nie pozwalało mi używać terminala bez nazwy skryptu.js umiera.
Ale włożyłem nodejs scriptname.js
do pliku. sh i
Zadziałało.
Zdecydowanie nie chodzi o produkcję, ale rozwiązuje problem "muszę nadal używać mojego terminala i nie chcę uruchamiać 5 różnych terminali".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-22 14:28:28
Jeśli używasz nodejs na serwerze linux, myślę, że jest to najlepszy sposób.
Utwórz skrypt usługi i skopiuj do /etc/init/nodejs.conf
Start service: sudo service NodeJS start
Stop service: sudo service NodeJS stop
Sevice script
description "DManager node.js server - Last Update: 2012-08-06"
author "Pedro Muniz - [email protected]"
env USER="nodejs" #you have to create this user
env APPNAME="nodejs" #you can change the service name
env WORKDIR="/home/<project-home-dir>" #set your project home folder here
env COMMAND="/usr/bin/node <server name>" #app.js ?
# used to be: start on startup
# until we found some mounts weren't ready yet while booting:
start on started mountall
stop on shutdown
# Automatically Respawn:
respawn
respawn limit 99 5
pre-start script
sudo -u $USER echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/$APPNAME.log
end script
script
# Not sure why $HOME is needed, but we found that it is:
export HOME="<project-home-dir>" #set your project home folder here
export NODE_PATH="<project node_path>"
#log file, grant permission to nodejs user
exec start-stop-daemon --start --make-pidfile --pidfile /var/run/$APPNAME.pid --chuid $USER --chdir $WORKDIR --exec $COMMAND >> /var/log/$APPNAME.log 2>&1
end script
post-start script
# Optionally put a script here that will notifiy you node has (re)started
# /root/bin/hoptoad.sh "node.js has started!"
end script
pre-stop script
sudo -u $USER echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/$APPNAME.log
end script
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-03 12:46:42
Spróbuj uruchomić to polecenie, jeśli używasz nohup -
nohup npm start 2>/dev/null 1>/dev/null&
Możesz również użyć forever do uruchomienia serwera
forever start -c "npm start" ./
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-31 07:31:56
Użyj nssm najlepsze rozwiązanie dla windows, po prostu pobierz nssm , Otwórz cmd do katalogu nssm i wpisz
nssm install <service name> <node path> <app.js path>
eg: nssm install myservice "C:\Program Files\nodejs" "C:\myapp\app.js"
Spowoduje to zainstalowanie nowej usługi windows, która będzie wyświetlana w services.msc stamtąd możesz uruchomić lub zatrzymać usługę, ta usługa uruchomi się automatycznie i możesz skonfigurować, aby ponownie uruchomić, jeśli się nie powiedzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-21 12:20:03
Aby dopełnić różne sugerowane opcje, Oto jeszcze jedno: polecenie daemon
W GNU / Linuksie, o którym możecie przeczytać tutaj: http://libslack.org/daemon/manpages/daemon.1.html . (przepraszam, jeśli jest to już wspomniane w jednym z komentarzy powyżej).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-04 04:16:08
Czerwiec 2017 Aktualizacja:
Rozwiązanie dla Linuksa: (Red hat). Poprzednie komentarze mi nie działają.
To działa dla mnie na Amazon Web Service-Red Hat 7. Mam nadzieję, że komuś się uda.
A. Create the service file
sudo vi /etc/systemd/system/myapp.service
[Unit]
Description=Your app
After=network.target
[Service]
ExecStart=/home/ec2-user/meantodos/start.sh
WorkingDirectory=/home/ec2-user/meantodos/
[Install]
WantedBy=multi-user.target
B. Create a shell file
/home/ec2-root/meantodos/start.sh
#!/bin/sh -
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
npm start
then:
chmod +rx /home/ec2-root/meantodos/start.sh
(to make this file executable)
C. Execute the Following
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl status myapp
(If there are no errors, execute below. Autorun after server restarted.)
chkconfig myapp -add
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 10:40:30
Zobacz fuga! Oprócz uruchomienia wielu pracowników, Możesz również demonizować proces węzła!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-26 05:10:05
Czy ktoś zauważył trywialny błąd pozycji "2 > &1"?
2>&1 >> file
Powinno być
>> file 2>&1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-20 13:49:56
Używam tmux dla środowiska programistycznego wielu okien / okienek na zdalnych hostach. To naprawdę proste, aby odłączyć i utrzymać proces działa w tle. Zobacz tmux
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 08:52:17
Ta odpowiedź jest dość późno dla strony, ale odkryłem, że najlepszym rozwiązaniem było napisanie skryptu powłoki, który używał zarówno screen -dmS
, jak i nohup
.
screen -dmS newScreenName nohup node myserver.js >> logfile.log
Dodaję również bit >> logfile
na końcu, dzięki czemu mogę łatwo zapisać instrukcje node console.log()
.
Dlaczego użyłem skryptu powłoki? Cóż, dodałem również do instrukcji if, która sprawdzała, czy proces {[5] } był już uruchomiony.
W ten sposób udało mi się stworzyć jedną opcję wiersza poleceń, która pozwala mi zachować serwer będzie, a także uruchom go ponownie, gdy dokonałem zmian, co jest bardzo pomocne dla rozwoju.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-19 15:00:29
PM2 jest menedżerem procesu produkcyjnego dla węzła.aplikacje js z wbudowanym load balancer. Pozwala utrzymać aplikacje przy życiu na zawsze, przeładowywać je bez przestojów i ułatwiać typowe zadania administratora systemu. https://github.com/Unitech/pm2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-09 19:15:45
Dziwię się, że nikt nie wspomniał o
Próbowałem forever, pm2 itp. Ale jeśli chodzi o solidną kontrolę i internetowe wskaźniki wydajności, uznałem Guvnor za zdecydowanie najlepszy. Plus, jest również w pełni opensource.
Edit: jednak nie jestem pewien, czy to działa na windows. Używałem go tylko na Linuksie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 15:23:24
To bardzo proste.
- Dodaj pakiet.json w Twoim projekcie
- Dodaj nazwę pliku skryptu lub ścieżkę do pakietu.JSON Start
- Następnie po prostu przejdź do konsoli otwórz katalog projektu za pomocą ścieżki cd/do / katalogu /
- napisz nohup npm start
Poniżej znajduje się Pakiet.JSON próbka, której każdy może użyć. { "nazwa": "projekt",
"version": "1.0.0",
"main": "httpsserver.js",
"scripts": {
"start": "node httpsserver.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {},
"description": ""
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-17 11:01:18