Solução Open source para provedores de IPTV/OTT com Magoware (Projeto descontinuado)
Projeto foi descontinuado e agora é pago :-
Magoware é uma solução de código aberto para provedores de IPTV/OTT. Para qualquer dispositivo, em qualquer lugar, a qualquer hora. Solução de middleware, proteção de conteúdo (DRM), rede de entrega de conteúdo (CDN).
Recebi um pedido de um leitor (Cleicimar) que estava tentando levantar um servidor com o projeto Magoware, solução para plataforma IPTV/OTT.
Distribuição utilizada: Debian 9 (Instalação limpa)
Antes de começar vamos ao pré-requisitos da instalação: Node.js e NPM
# apt install curl -y # curl -sL https://deb.nodesource.com/setup_8.x | bash - # apt install nodejs build-essential libssl-dev git -y
Vamos baixar projeto em /usr/local/src/magoware/
# git clone https://github.com/MAGOWARE/backoffice-administration.git /usr/local/src/magoware/
Entre no diretório e vamos a instalação:
# cd /usr/local/src/magoware/ # npm install
Será necessário ter um banco de dados instalado, de cara fui logo tentando com mariadb, mas para minha surpresa não foi possível realizar a instalação, então vamos precisar dos repositórios do mysql e para sua isntalação.
Adicionamos então ao nosso repositório:
# echo -e "deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7\ndeb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7" > /etc/apt/sources.list.d/mysql.list # wget -O /tmp/RPM-GPG-KEY-mysql https://repo.mysql.com/RPM-GPG-KEY-mysql --no-check-certificate # apt-key add /tmp/RPM-GPG-KEY-mysql
Faça um update do repositórios e então inicia a instalação
# apt update # apt install mysql-server
Durante a isntalçao será solicitado a senha para o usuario root do mysql.
Entre no terminal do mysql, e crie nosso banco de dados e um usuário para acessa-lo.
# mysql -p
CREATE DATABASE magoware; GRANT ALL PRIVILEGES ON magoware.* TO 'magoware'@'localhost' IDENTIFIED BY 'SUA-SENHA-BD-MAGO'; FLUSH PRIVILEGES; quit;
Certifique-se que está no diretório: /usr/local/src/magoware/
# cd /usr/local/src/magoware/
Agora inicie o Magaware
# node server.js
Na primeira vez será solicitado dados para conexão com o banco de dados mysql:
Acesse em seu navegador http://seu-servidor/admin. Usuário e senha são: admin
Será necessário criar um script de inicialização, já expliquei como fazer em vários outros tutorias, exite diversas formas.
Caso altere os dados da conexão mysql será necessários editar o arquivo /config/env/db.connection.js
Espero ter ajudado! Vale ressaltar que não tenho muito conhecimento sobre o projeto, e estou tentando entende-lo melhor.
Então quem sabe em uma outra oportunidade possa atualizar este tutorial, ou criar um novo explicando como “mexer” no nele.
Canal Magoware no Youtube: https://www.youtube.com/channel/UC7HELrblDb9peuFCFweu0HQ
Boa tarde Rudimar, muito bom esse artigo, pena que o projeto foi descontinuado….
Você sabe se tem algum outro projeto pra isso?
Existe uma outra solução opensource?
Consegui encontrar alguma?
Acho que esse projeto não é mais opensource né?
Pelo que vi deixou de ser 🙁
Boa noite.
Rudimar, parabens pelo tutorial, Alguem conseguiu colocar para funcionar , consegui chegar na plataforma admin, no entanto não consigo cadastrar um cliente para que possa r ver o streaming ou ainda direto na pag aparece apenas Cannot GET /
Desde já agradeço a ajuda de vcs.
Pessoal a usuario e senha para acessar e superadmin
Futriquei no banco de dados e achei kkkk, valeu
usuario e senha admin nào entra, ja fiz a instalação duas vezes
Boa tarde, como faco para iniciar os serviços ? Reinicie e agora to perdido !!!
quando vou tentar criar um canal
2019-10-09T20:05:23.901Z – verbose: Executing (default): SELECT count(`genre`.`id`) AS `count` FROM `genre` AS `genre` LEFT OUTER JOIN `channels` AS `channels` ON `genre`.`id` = `channels`.`genre_id` WHERE `genre`.`company_id` = 1 GROUP BY `genre`.`id`, `genre`.`description`;
2019-10-09T20:05:23.906Z – verbose: Executing (default): SELECT `genre`.`id`, `genre`.`description`, `genre`.`icon_url`, `genre`.`is_available`, `channels`.`id` AS `channels.id`, count(`channels`.`id`) AS `channels.total` FROM `genre` AS `genre` LEFT OUTER JOIN `channels` AS `channels` ON `genre`.`id` = `channels`.`genre_id` WHERE `genre`.`company_id` = 1 GROUP BY `genre`.`id`, `genre`.`description`;
error: Getting genre list failed with error: message=ER_WRONG_FIELD_WITH_GROUP: Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘magoware.channels.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by, name=SequelizeDatabaseError, stack=SequelizeDatabaseError: ER_WRONG_FIELD_WITH_GROUP: Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘magoware.channels.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
at Query.formatError (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/mysql/query.js:175:14)
at Query. (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/mysql/query.js:49:21)
at Query. (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:525:10)
at Query._callback (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:491:16)
at Query.Sequence.end (/usr/local/src/magoware/node_modules/mysql/lib/protocol/sequences/Sequence.js:83:24)
at Query.ErrorPacket (/usr/local/src/magoware/node_modules/mysql/lib/protocol/sequences/Query.js:90:8)
at Protocol._parsePacket (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Protocol.js:291:23)
at Parser._parsePacket (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Parser.js:433:10)
at Parser.write (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Parser.js:43:10)
at Protocol.write (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket. (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:91:28)
at Socket. (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:525:10)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:601:20)
From previous event:
at Query.run (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/mysql/query.js:39:17)
at /usr/local/src/magoware/node_modules/sequelize/lib/sequelize.js:849:20
at /usr/local/src/magoware/node_modules/retry-as-promised/index.js:39:21
From previous event:
at retryAsPromised (/usr/local/src/magoware/node_modules/retry-as-promised/index.js:29:10)
at /usr/local/src/magoware/node_modules/sequelize/lib/sequelize.js:848:12
From previous event:
at Promise.then (/usr/local/src/magoware/node_modules/sequelize/lib/promise.js:21:17)
at Model.findAndCount (/usr/local/src/magoware/node_modules/sequelize/lib/model.js:1672:35)
at exports.list (/usr/local/src/magoware/modules/mago/server/controllers/genre.server.controller.js:142:11)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5)
at next (/usr/local/src/magoware/node_modules/express/lib/router/route.js:137:13)
at exports.isAllowed (/usr/local/src/magoware/modules/mago/server/policies/mago.server.policy.js:174:9)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5)
at next (/usr/local/src/magoware/node_modules/express/lib/router/route.js:137:13)
at exports.Authenticate (/usr/local/src/magoware/modules/mago/server/policies/mago.server.policy.js:135:9)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5)
at next (/usr/local/src/magoware/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/usr/local/src/magoware/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5)
at /usr/local/src/magoware/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/usr/local/src/magoware/node_modules/express/lib/router/index.js:335:12)
at next (/usr/local/src/magoware/node_modules/express/lib/router/index.js:275:10)
at SendStream.error (/usr/local/src/magoware/node_modules/serve-static/index.js:121:7)
at emitOne (events.js:116:13)
at SendStream.emit (events.js:211:7)
at SendStream.error (/usr/local/src/magoware/node_modules/send/index.js:270:17)
at SendStream.onStatError (/usr/local/src/magoware/node_modules/send/index.js:421:12)
at next (/usr/local/src/magoware/node_modules/send/index.js:735:16)
at onstat (/usr/local/src/magoware/node_modules/send/index.js:724:14)
at FSReqWrap.oncomplete (fs.js:152:21), code=ER_WRONG_FIELD_WITH_GROUP, errno=1055, sqlMessage=Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘magoware.channels.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by, sqlState=42000, index=0, sql=SELECT `genre`.`id`, `genre`.`description`, `genre`.`icon_url`, `genre`.`is_available`, `channels`.`id` AS `channels.id`, count(`channels`.`id`) AS `channels.total` FROM `genre` AS `genre` LEFT OUTER JOIN `channels` AS `channels` ON `genre`.`id` = `channels`.`genre_id` WHERE `genre`.`company_id` = 1 GROUP BY `genre`.`id`, `genre`.`description`;, $ref=$[“parent”], sql=SELECT `genre`.`id`, `genre`.`description`, `genre`.`icon_url`, `genre`.`is_available`, `channels`.`id` AS `channels.id`, count(`channels`.`id`) AS `channels.total` FROM `genre` AS `genre` LEFT OUTER JOIN `channels` AS `channels` ON `genre`.`id` = `channels`.`genre_id` WHERE `genre`.`company_id` = 1 GROUP BY `genre`.`id`, `genre`.`description`;, __stackCleaned__=true
2019-10-09T20:05:23.973Z – verbose: Executing (default): SELECT count(`package`.`id`) AS `count` FROM `package` AS `package` INNER JOIN `package_type` AS `package_type` ON `package`.`package_type_id` = `package_type`.`id` WHERE `package`.`package_type_id` IN (‘1’, ‘2’) AND `package`.`company_id` = 1;
Boa tarde, consegui dar prosseguimento da instalação. Criei o stream, um canal VOD, um pacote, um plano e um usuario, mas agora nao consegui o caminho para visualizar esse canal num app iptv ou pelo navegador. Normalmente, seria uma lista “.m3u”, tentei pegar um link de outro iptv mas sem sucesso ainda. Alguém ja chegou nesse ponto?
Caro João Pedro, como foi que ultrapassou o “Company Disabled Due to Payment” ?
Eu instalei no debian 9 e nao tive dificuldades, mas na hora do login com admin vejo o erro “Company Disabled due to Payment”. No forum da github vi umas pessoas falando pra editar a coluna “billing_date” na tabela “settings”, eu acessei o banco com o Workbench mas eu nao achei. Alguem já passou por isso? Tem uma dica de como resolver?
Ola fiz toda instalação e na hora de logar nao entra com possiveis usuários nenhum oque poderia ser
boas , a min nao arrancar no final da-me sempre erro poderia ajudar
fatal: true },
original: { ‘$ref’: ‘$[“parent”]’ },
__stackCleaned__: true }
Unhandled rejection SequelizeAccessDeniedError: ER_ACCESS_DENIED_ERROR: Access d enied for user ‘magoware’@’localhost’ (using password: YES)
at Handshake. (/usr/local/src/magoware/node_modules/sequelize/lib /dialects/mysql/connection-manager.js:83:20)
at Handshake. (/usr/local/src/magoware/node_modules/mysql/lib/Con nection.js:525:10)
at Handshake._callback (/usr/local/src/magoware/node_modules/mysql/lib/Conne ction.js:491:16)
at Handshake.Sequence.end (/usr/local/src/magoware/node_modules/mysql/lib/pr otocol/sequences/Sequence.js:83:24)
at Handshake.ErrorPacket (/usr/local/src/magoware/node_modules/mysql/lib/pro tocol/sequences/Handshake.js:125:8)
at Protocol._parsePacket (/usr/local/src/magoware/node_modules/mysql/lib/pro tocol/Protocol.js:291:23)
at Parser._parsePacket (/usr/local/src/magoware/node_modules/mysql/lib/proto col/Parser.js:433:10)
at Parser.write (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Par ser.js:43:10)
at Protocol.write (/usr/local/src/magoware/node_modules/mysql/lib/protocol/P rotocol.js:38:16)
at Socket. (/usr/local/src/magoware/node_modules/mysql/lib/Connec tion.js:91:28)
at Socket. (/usr/local/src/magoware/node_modules/mysql/lib/Connec tion.js:525:10)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:601:20)
From previous event:
at ConnectionManager.connect (/usr/local/src/magoware/node_modules/sequelize /lib/dialects/mysql/connection-manager.js:55:10)
at ConnectionManager. (/usr/local/src/magoware/node_modules/seque lize/lib/dialects/abstract/connection-manager.js:247:43)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at Promise.then (/usr/local/src/magoware/node_modules/sequelize/lib/promise. js:21:17)
at ConnectionManager.$connect (/usr/local/src/magoware/node_modules/sequeliz e/lib/dialects/abstract/connection-manager.js:246:70)
at ConnectionManager.getConnection (/usr/local/src/magoware/node_modules/seq uelize/lib/dialects/abstract/connection-manager.js:203:44)
at Sequelize.query (/usr/local/src/magoware/node_modules/sequelize/lib/seque lize.js:844:83)
at Sequelize.authenticate (/usr/local/src/magoware/node_modules/sequelize/li b/sequelize.js:1085:15)
at Object.db.connect (/usr/local/src/magoware/config/lib/sequelize.js:76:15)
at Object. (/usr/local/src/magoware/config/lib/sequelize-connect. js:22:5)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object. (/usr/local/src/magoware/config/lib/app.js:9:15)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
Rudimar, parabéns pelo Blog. No momento de instalar o npm: -bash: npm: comando não encontrado
Como posso resolver?
Obrigado.
Resolvi, tinha instalado a versão 10 do debian. Troquei para a 9 e ficou blza.
Fiz a instalação ontem no debian 10 e funcionou rsrs, vou criar uma novo post para o debian 10, ja vou tentar deixar mais simplificado (do q ja tá kk)
boa noite meu amigo, instalei tudo certo eu acho não deu nenhum erro e tals mais na hora de eu entrar no painel não aparece nada ja coloquei meu ip, localhost e nada poderia me orientar?
Vc precisa solicitar, cadastrar seu host, e entrar na fila de espera… em alguns dias eles vão responder.
ahhh certo obg, ja tem algum tutorial para o debian 10?
Ainda não.
Ola, minha instalação aconteceu normalmente, mas aparece no navegador “Cannot GET /”, se caso precisa registrar o host aonde faço isso?
Rudimar boa noite
Consigo depois criar uma lista e acessar via kodi?
Boa tarde Rudimar Remonti!
Pra mim não pediu senha ao instalar o mariadb, e me retorna essa mensagem quando inicializo o node server.js
2019-03-18T17:56:56.709Z – error: error reading database settings:
{ message: ‘ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MariaDB client’,
name: ‘SequelizeConnectionError’,
stack: ‘SequelizeConnectionError: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MariaDB client\n at Handshake. (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:95:20)\n at Handshake. (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:502:10)\n at Handshake._callback (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:468:16)\n at Handshake.Sequence.end (/usr/local/src/magoware/node_modules/mysql/lib/protocol/sequences/Sequence.js:83:24)\n at Handshake.ErrorPacket (/usr/local/src/magoware/node_modules/mysql/lib/protocol/sequences/Handshake.js:126:8)\n at Protocol._parsePacket (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Protocol.js:278:23)\n at Parser.write (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Parser.js:76:12)\n at Protocol.write (/usr/local/src/magoware/node_modules/mysql/lib/protocol/Protocol.js:38:16)\n at Socket. (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:91:28)\n at Socket. (/usr/local/src/magoware/node_modules/mysql/lib/Connection.js:502:10)\n at emitOne (events.js:116:13)\n at Socket.emit (events.js:211:7)\n at addChunk (_stream_readable.js:263:12)\n at readableAddChunk (_stream_readable.js:250:11)\n at Socket.Readable.push (_stream_readable.js:208:10)\n at TCP.onread (net.js:601:20)\nFrom previous event:\n at ConnectionManager.connect (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:55:10)\n at ConnectionManager. (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:247:43)\n at runCallback (timers.js:810:20)\n at tryOnImmediate (timers.js:768:5)\n at processImmediate [as _immediateCallback] (timers.js:745:5)\nFrom previous event:\n at Promise.then (/usr/local/src/magoware/node_modules/sequelize/lib/promise.js:21:17)\n at ConnectionManager.$connect (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:246:70)\n at ConnectionManager.getConnection (/usr/local/src/magoware/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:203:44)\n at Sequelize.query (/usr/local/src/magoware/node_modules/sequelize/lib/sequelize.js:844:83)\n at Sequelize.authenticate (/usr/local/src/magoware/node_modules/sequelize/lib/sequelize.js:1085:15)\n at Object.db.connect (/usr/local/src/magoware/config/lib/sequelize.js:71:15)\n at Object. (/usr/local/src/magoware/config/lib/sequelize-connect.js:22:5)\n at Module._compile (module.js:653:30)\n at Object.Module._extensions..js (module.js:664:10)\n at Module.load (module.js:566:32)\n at tryModuleLoad (module.js:506:12)\n at Function.Module._load (module.js:498:3)\n at Module.require (module.js:597:17)\n at require (internal/module.js:11:18)\n at Object. (/usr/local/src/magoware/config/lib/app.js:9:15)\n at Module._compile (module.js:653:30)\n at Object.Module._extensions..js (module.js:664:10)\n at Module.load (module.js:566:32)\n at tryModuleLoad (module.js:506:12)’,
parent:
{ code: ‘ER_NOT_SUPPORTED_AUTH_MODE’,
errno: 1251,
sqlMessage: ‘Client does not support authentication protocol requested by server; consider upgrading MariaDB client’,
sqlState: ‘08004’,
fatal: true },
Se puder me dar uma luz…. ficaria agradecida
Mariadb não pede senha a senhá tem q ser criada posteriormente, como em outros tutorial que tem no blog que explica.
Porém no tutorial fala para usar o MYSQL, pois o Mariadb NÃO FUNCIONA.
Esta lá: […]de cara fui logo tentando com mariadb, mas para minha surpresa não foi possível realizar a instalação[…]
Hello
Thank you for your helping and nice job to go step by step to install Magoware IPTV system
I install it and when try to access no action run when I click on login
at the same time I can see
error: Finding the user failed with error: message=groups is not associated to users!, stack=Error: groups is not associated to users!
at Model.validateIncludedElement (/usr/local/src/magoware/node_modules/sequelize/lib/model.js:558:11)
at /usr/local/src/magoware/node_modules/sequelize/lib/model.js:440:29
at Array.map ()
at Model.validateIncludedElements (/usr/local/src/magoware/node_modules/sequelize/lib/model.js:436:37)
at Model. (/usr/local/src/magoware/node_modules/sequelize/lib/model.js:1372:32)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
From previous event:
at Promise.then (/usr/local/src/magoware/node_modules/sequelize/lib/promise.js:21:17)
at Model.findAll (/usr/local/src/magoware/node_modules/sequelize/lib/model.js:1368:6)
at Model.findOne (/usr/local/src/magoware/node_modules/sequelize/lib/model.js:1527:34)
at exports.authenticate (/usr/local/src/magoware/modules/mago/server/controllers/authentication.controller.js:37:13)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5)
at next (/usr/local/src/magoware/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/usr/local/src/magoware/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5)
at /usr/local/src/magoware/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/usr/local/src/magoware/node_modules/express/lib/router/index.js:335:12)
at next (/usr/local/src/magoware/node_modules/express/lib/router/index.js:275:10)
at serveStatic (/usr/local/src/magoware/node_modules/serve-static/index.js:75:16)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/local/src/magoware/node_modules/express/lib/router/index.js:317:13)
at /usr/local/src/magoware/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/local/src/magoware/node_modules/express/lib/router/index.js:335:12)
at next (/usr/local/src/magoware/node_modules/express/lib/router/index.js:275:10)
at hsts (/usr/local/src/magoware/node_modules/hsts/index.js:42:5)
at Layer.handle [as handle_request] (/usr/local/src/magoware/node_modules/express/lib/router/layer.js:95:5), __stackCleaned__=true
Can you kindly let me know how to solve this issue
Regards
Caso eu quiser fazer dele um servidor VOD e adicionar filmes, como fica a questão de copyright dos filmes, séries, etc?
Eu uso para salvar fotos e videos pessoais 😉
olá querido Rudimar Remontti ! tudo bem ? então eu fiz certinho e so deu erro no final do npm install, eu tenho pequeno provedor e gostaria muito de testar essa aplicação para um projeto futuro nosso de iptv dentro da nossa rede de fibra. POderia me ajudar ? o erro foi este;
gyp ERR! stack Error: EACCES: permission denied, mkdir ‘/usr/local/src/magoware/node_modules/node-sass/.node-gyp’
gyp ERR! System Linux 3.16.0-4-amd64
gyp ERR! command “/usr/bin/node” “/usr/local/src/magoware/node_modules/node-gyp/bin/node-gyp.js” “rebuild” “–verbose” “–libsass_ext=” “–libsass_cflags=” “–libsass_ldflags=” “–libsass_library=”
gyp ERR! cwd /usr/local/src/magoware/node_modules/node-sass
gyp ERR! node -v v8.14.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.10.0 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.10.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-12-09T00_24_16_403Z-debug.log
Refaça utilizando debian 9. parece q nao instalou node direito.