Skip to content

Implementation questions #87

@scd31

Description

@scd31

Hi! I'm porting the syncing logic stuff to Nix so that I can deploy it declaratively, which has caused me to dig through your code. I have a few questions:

  1. When downloading the tar.gz, I think we could lower the required disk space by piping curl directly into unpigz instead of saving to the disk first. It should lower requirements by about 90GB.
    1a. The 300GB requirement in self-host.md seems a bit low to me. The two copies of tiles we're saving is 300GB alone, but when we download a new copy it's going to take another 150GB (on top of the 90GB for the temp file)

  2. Why do we serve two copies of the tiles at a given time? Is it so that if someone leaves a client open, or the index JSON is cached, they won't hit now-broken links? Just want to make sure I understand this correctly.
    2a. If yes, maybe we could delete the oldest version before we download the new version? Seems like we could truly have a 300GB disk requirement at that point.

  3. Could you help me wrap my head around the assets and sprites a bit? Where do they come from? Are they specific to each weekly tile generation or could they be deployed once? Just wondering if I could wrap these up as part of my deployment process instead of downloading them. One of the things I like about self-hosting is that I don't have to worry too much about things breaking randomly, but downloading a bunch of stuff regularly increases this risk. If I could avoid it that would be ideal.

  4. Is there a reason why we have Python calling Python here? Couldn't we just call it like a normal method?

Thanks, and awesome project btw! I have a server with >128GB of RAM and 4TB of flash storage that I'm hoping to retire as a result of this. I would definitely be happy to merge in the Nix changes if you're interested, or keep it separate if you'd prefer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions