Code Monkey home page Code Monkey logo

Comments (5)

JoshData avatar JoshData commented on August 17, 2024

I would accept that. It's something I've wanted to do.

The main thing I would want to discuss more is "Add the option to disable web hosting and A/AAAA records check on single domains":

  • Disabling web hosting is frequently asked for, but it's not exactly a sensible request. If the domain has an A record that points to the box, then the box has to respond to web requests. It can't not respond since it's already listening on its IP address for all of the other websites (including the admin). If the user sets a custom A record pointing elsewhere, or is using External DNS and sets an A record pointing elsewhere, then it doesn't matter if the box is configured to do web hosting for that domain.
  • I would like to talk through what exactly would be disabled with different settings for the domain.
  • I'd like to discuss the database table schema so that we get something that is easy to maintain for the future.

But these don't have to stop you from starting.

from mailinabox.

tognee avatar tognee commented on August 17, 2024

Hi, thanks for your kind response

Database table schema:
Currently I've added a domains table with the fields domain and options. I've modelled the options field to work as the privileges fields in the table users. The options in options act as a boolean value, true if present and false if not.
There is only one option for now, no-web that should do what I described in the OP.

What will be disabled:
Let's make an example with a domain example.com.

  • box.example.com - box domain
  • example.com - primary domain
  • anotherexample.com - secondary domain

box.example.com can't enable this option as it's needed to show the admin panel, the webmail and nextcloud.
example.com and anotherexample.com can enable this option.

This option will:

  • skip creating the servers on nginx for the root and www subdomains
  • remove the entries from the DNS
  • hide and skip the checks for the A and AAAA records on root and www subdomains
  • hide the actions in the SSL certificates panel and the web panels for the root and www subdomains

As for the why:
The secondary domain is not connected via glue nameservers so the web hosting could be on another server.
The primary domain should have an option to disable the web hosting if the box is using an external DNS without glue records or the user doesn't want to host a static website and wants to use their own server with their own instance of nginx.
When using glue records the user could still remove the web server and add A AAAA or even CNAME records using the Custom DNS panel already present in the admin.

If any point is not clear enough let me know and I'll try to explain it better.

from mailinabox.

test2a avatar test2a commented on August 17, 2024

@JoshData similar to what tognee said, i want box.example.com to be the email server but example.com to be a different IP. is it possible to do that? i see an entry in external dns file example.com - box.example.com. how do i decouple box and primary domain?

from mailinabox.

JoshData avatar JoshData commented on August 17, 2024

@test2a What you want is possible and not really related to this discussion. Please ask on the forum for help.

from mailinabox.

tognee avatar tognee commented on August 17, 2024

I've made some work on this feature on my own branch. It's still not ready for merging and development is proceeding slow as I need to destroy the VM and rebuild it every time I make a change (which takes quite a while).

https://github.com/tognee/mailinabox/tree/feat/domains

I might create a draft pull request when I get it working like I intended

from mailinabox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.