Run from source code and then deploy it to server for production

#noob_developer_alert
Hi,
I am really new to jitsi things and also in development fields. There are some basic things I want to know about jitsi meet. I already did below 2 things:

  1. I did a quick install (also implemented secure domain and etherpad-lite attachment) and ran it on my local ip and working fine.
  2. I also downloaded the source code of jitsi meet and also made it run on my localhost and working fine.

=> Now if I want to customize some features, I have to work on source code and see the local changes in local server(development mode) by backend infrastructure support from jitsi and later I can use this changed code to deploy in any pc (just by copying the changed source [uploaded in git] code and build+run).

=> But if I want to customize(ex: implement secure domain) after quick install, I can also customize in respectative directories/file needed. But here comes the problem that, it is hard to keep track the changes I am making and it is not easy to deploy same changed configuration/codebase in another pc/server like before(just download the git code and run, as now the changes not in some fixed directory,changes are in various root directory/files like etc,usr,var…).

Here, my concept is unclear about the "git-code run+deploy’ (development mode by backend support by jitsi) Vs “quick install and run on server” (which is actually in production mode)
how can I customize the git codes (implement/change whatever I want) and then save the configuration/codebase and later I can run on any pc/server in production mode (like quick install and changes in repectative directiries/file but source code code change and root directory file changes are different).
My future plan is to integrate this with a educational website (now in developing phase)
Thanx for reading and please help me or guide me how I should proceed and take my apology if I asked a really stupid/silly question. Is docker a solution to this? just asking though I have no clear idea
@damencho @saghul
Thanx a lot from the deep of my heart in advance for any reply.

You have 2 options. Commit your code changes to a git repo of yours, and then:

  • implement some deployment automation that will do the quick install and then checkout your code compile it and deploy it in automated way. A sumple bash script will also work.
  • or you can do some ci automation and create debian packages from your changes and use your repo in combination with jitsi repo to install your new packages in a way quick install is doing that.
1 Like

:heartbeat: Thanx a lot for the reply
So as far as I understand 1 is the better way? so I need to write a bash script? but from source code I ran “make dev” command to run on developing mode with backend support by jitsi but I want it in production mode independent of the support from jitsi.what should I do if I want to deploy the server with source code in public/local ip like I did after quick install.

Search the forum, that question was answered several times. You just need to change the root folder in nginx config to point to your modified and compiled source code.

1 Like

I found in one of your prev reply that I can just quick install and then after changing/devoloping in jitsi-meet master repo(dev mode) I can just replace the usr/share/jitsi-meet with jitsi-meet-master(git)…
so will this just work? :neutral_face:
As I did quick install(so if the pc is on,server is on) and deployed in local ip and also deployed git-source-code to localhost(by backend support from jitsi).
So if now I just replace my usr/share/jitsi-meet folder with my home/jitsi-meet-master folder and now in in local ip server (production mode) will I see the change and it has independent backend support (as from quick install,I got other necessary components like jicofo,video bridge automatically installed) but when I just run the source code I need backend support (jicofo,video bridge etc…) is this really happening how the way I am thinking?
Another ques is if I make any change in usr/share/jitsi-meet folder (replace folder or change in files) how should I restart the server (jitsi-meet component) ?
Thanx in advance for reply…! :confounded: :heart:

Yes. One of the thing there is no need to copy is node_modules folder.

I got really confused and don’t understand fully your question and when I just run the source code I need backend support.
When you run make dev it uses webpack.config.js to start a proxy server using a backend that is configured, this is like opening the browser on that backend it just filters the requests and serves the UI code that you had modified.

The jitsi-meet source code is just a web page served from the webserver, you do not need to restart anything if you change root folder though, you need to restart the webserver. Not sure whether you use nginx, apache or jetty that is embedded in jvb, but you need the restart the webserver you use.

I meant I just dont wanna make only change in the UI, I also want my control/customization(may be in future) in every component like prosody,video bridge and others. when I ran “make dev” it used webpack.config.js to start a proxy server but there I cant modify prosody,video bridge or others and cant implement all I want ,I just can change in UI. (?) so as in quick install-run, it is a ideal process to run… and doesnt use proxy things or auto configured things only(cant be modified)… so if I just replace the jitsi-meet directory to usr/share/… then it wont use proxy or something like that and will be fully configurable ideal server?
I used nginx
thanx a lot for the reply :heartbeat:

Yes.

If you want to modify the other components you need to download source code, one by one, modify it, make it to run from source or just replacing files in the original one and restart …

1 Like

Thanx now I understand how I should proceed :heartbeat:
One thing,for other things like prosody,jicofo,video bridge…for one source-code directory there is only one original one? like I just replaced the jitsi-meet directory… I should just replace other? or there is other way? bcz in /root directory I saw some other directories rather than usr/share which have directories having these names ,so should I make change there too?
or I just downloaded jitsi-meet,jicofo,video bridge source codes and replace the quick installed respectative directories?
:heartbeat: for the reply …

No, those are different, you should not replace folders. Take a closer look and compare folders once you compile the sources … you will see a big difference … they have dependencies and libraries (talking about the java projects such as jicofo and jvb). These are standard maven projects.

1 Like

I tried to just replace the folders(home/jitsi-meet[git downloaded] to usr/share/jitsi-meet) but it didnt work… the folders are quite same architecture but little differences. Shouldnt I just replace whole folders or selective files (I didnt copy node modules sub folder as u told) ? may be I should change some configuration files related to these too?
I found prev reply of your in similar type post that I should start replacing component by component after the quick install. but I think are many files that need to be changed (configure the paths and others) if I just want it work after replacing. is there anything where I will know exactly which portion of which files should I change? (I downloaded the jitsi-meet-master from git)
@saghul heart: for the reply