# Customize ODK collect server

**URL:** <https://forum.getodk.org/t/customize-odk-collect-server/12125>\
**Category:** Support\
**Created:** [March 6, 2018, 2:29pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125 "2018-03-06T14:29:51Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ali](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ali/32/3571_2.png) [@Ali](https://forum.getodk.org/u/Ali)\
**Post date:** [March 6, 2018, 2:29pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/1 "2018-03-06T14:29:51Z")

</div>

Hi, how can I customize server of ODK collect?  
I want to release an app with a specified server URL that the user don't need to go to General setting and import URL adress as well as Username and Password.

---

<div class="post-metadata">

**Author:** ![mathieubossaert](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/mathieubossaert/32/6131_2.png) [@mathieubossaert](https://forum.getodk.org/u/mathieubossaert)\
**Post date:** [March 7, 2018, 5:28am UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/2 "2018-03-07T05:28:00Z")

</div>

Hi,  
The first way to do it should be to share a QR code of the wanted conf with users : [https://opendatakit.org/2017/06/configure-collect-on-many-devices-with-qr-codes/](https://opendatakit.org/2017/06/configure-collect-on-many-devices-with-qr-codes/)  
So they will just have to scan it to configure the app.

Mathieu

---

<div class="post-metadata">

**Author:** ![Ali](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ali/32/3571_2.png) [@Ali](https://forum.getodk.org/u/Ali)\
**Post date:** [March 7, 2018, 1:48pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/3 "2018-03-07T13:48:49Z")

</div>

Thanks Mathieu  
I know that I can share my QR code to apply specific settings to another devices, actually I want share an app with specified settings that on this app the users don't need to scan a QR code to finding the settings.  
Is there any way to this ?

---

<div class="post-metadata">

**Author:** ![mathieubossaert](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/mathieubossaert/32/6131_2.png) [@mathieubossaert](https://forum.getodk.org/u/mathieubossaert)\
**Post date:** [March 7, 2018, 2:06pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/4 "2018-03-07T14:06:44Z")

</div>

I understood your need, my solution is in fact just a workaround ☹ . I heard from @pailletm that it is possible to do what you want, if I didn't misunderstood what he said, but I don't know how to do it by myself.

---

<div class="post-metadata">

**Author:** ![Akshay\_Patel](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/akshay_patel/32/2345_2.png) [@Akshay\_Patel](https://forum.getodk.org/u/Akshay_Patel)\
**Post date:** [March 7, 2018, 3:04pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/5 "2018-03-07T15:04:59Z")

</div>

@Ali One of the way is using a fork of ODK Collect and make changes in it so that Settings cannot be changed.  
Is that what you want to do?  
If yes, I can guide you.

---

<div class="post-metadata">

**Author:** ![Ali](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ali/32/3571_2.png) [@Ali](https://forum.getodk.org/u/Ali)\
**Post date:** [March 7, 2018, 3:56pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/6 "2018-03-07T15:56:31Z")

</div>

Ok I see  
Thanks for your guidance .

---

<div class="post-metadata">

**Author:** ![Ali](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ali/32/3571_2.png) [@Ali](https://forum.getodk.org/u/Ali)\
**Post date:** [March 7, 2018, 4:00pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/7 "2018-03-07T16:00:32Z")

</div>

Thanks @Akshay_Patel  
It's exactly what I need. Please help me with more description about this.

---

<div class="post-metadata">

**Author:** ![Akshay\_Patel](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/akshay_patel/32/2345_2.png) [@Akshay\_Patel](https://forum.getodk.org/u/Akshay_Patel)\
**Post date:** [March 7, 2018, 4:05pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/8 "2018-03-07T16:05:58Z")

</div>

Open "/collect/collect\_app/src/main/res/values/untranslated.xml".  
Change the line to desired URL

> \<string name="default\_server\_url" translatable="false"\>[https://opendatakit.appspot.com](https://opendatakit.appspot.com)\</string\>

Disable the edit text to enter ServerUrl :  
In class `ServerPreferencesFragment`, in `addAggregatePreferences()` add following line:

> ServerUrlPreference.setEnabled(false);

In same class, you can set default values for Username and password and disable editing options.  
This shall do the work but needs testing.

---

<div class="post-metadata">

**Author:** ![Ali](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ali/32/3571_2.png) [@Ali](https://forum.getodk.org/u/Ali)\
**Post date:** [March 8, 2018, 8:45am UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/9 "2018-03-08T08:45:34Z")

</div>

ok, I will try it.  
Thank you very much .

---

<div class="post-metadata">

**Author:** ![Akshay\_Patel](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/akshay_patel/32/2345_2.png) [@Akshay\_Patel](https://forum.getodk.org/u/Akshay_Patel)\
**Post date:** [March 9, 2018, 7:21pm UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/10 "2018-03-09T19:21:10Z")

</div>

@Ali if you need more assistance in coding, feel free to ask.  
You can share the link of your forked repository here, I shall open a pull request for desired functionality you expect if needed.

---

<div class="post-metadata">

**Author:** ![LN](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/ln/32/1605_2.png) [@LN](https://forum.getodk.org/u/LN)\
**Post date:** [March 12, 2018, 2:20am UTC](https://forum.getodk.org/t/customize-odk-collect-server/12125/11 "2018-03-12T02:20:45Z")

</div>

A post was split to a new topic: [ODK training over Skype?](https://forum.getodk.org/t/odk-training-over-skype/12213)
