Gitlab and writing a book

So I’ve decided to write a book to kind of get practice for my PhD dissertation. It’s going to be on Linux and Open Source Philosophy. I’ve just started the research for it now, but I’ll send a copy to anyone interested once I finish it (might be a while lol)

Also, I never quite understood version control up until now… things like github and gitlab … it’s because I never really seriously did all that much coding. But I found out the other day that gitlab can help you with writing projects as well as coding. I recently set up a gitlab server on a VM, and I’ve been putting all my articles for on there as well as planning on using it to write said book. It’s actually pretty useful.


I love the topic, and, writing practice is a good move.

never quite understood version control up until now… things like github and gitlab

In my mind, verion control is really git ( and its ancestors like CVS, RSS, SCCS). Yes they are tools for programmers… especially for teams of programmers.
They dont really help much with a single programmer or writer. I use them on lone projects
but more out of habit than need.
I dont know about gitlab, but I interface to github by using git locally then pushing committed stuff to a remote github repo.
I am sure you can use github and gitlab directly… just dont know… never tried.

What about writing tool?.. there is everything from Latex to Markdown. Lots of PhD writers use Latex in the scientific area, mainly because of the maths typsetting. Book writers use various markup languages. Word is not really a good choice… you spend too much time setting up,styles, etc when you should be being creative.


I’m using markdown with visual studio code. The gitlab server functions as more of a built in backup and revision control system than anything else, This way I can clone the repository to anything I want, and boom.

I am using an application called NovelWriter. It stores everything in plain text, and uses a multitude of files in such a way it’s an ideal combination with git.

Note: I am completely insane and not doing so. Nor do I have off-site backups, which would be another sane thing to do with my writing.

Then again, I have honed the art of procrastination to perfection. If you want any advice regarding how to be less productive, I can definitely help.

1 Like

It’s nice to know that I’m not the only insane member of this gang. But I’m not so nuts as to not use external backup. Doc, please back up your stuff!

1 Like

No worries. I’m using a Synology NAS that has 2 8TB external HDDs backing it up that I rotate. (one offsite) …

1 Like

One of my sons–LtCol Jake–gifted me with a Synology NAS when he upgraded to something bigger. With that and MEGA, I’m also in good shape.

But you did have me a little worried.

1 Like

Writing techniques are many and varied.

I like to get a skeleton article written first… ie just set of headings or chapters… then I might start anywhere, not necessarily the beginning. Make a structure and pour ideas into it.

I have a colleague who starts by writing ideas in random order, then shuffles the text as he rethinks things. A great paper usually emerges but he is a challenge to collaborate with.

You probably have your own technique. There are no rules… writing is a creative activity.

So, how can I set up things that it’ll automagically make a remote backup when I close NovelWriter, except when no change has occurred?

preferences, projects, set a backup location, and then you can set whether or not it does backups in the background via project settings.

I’m such a tinkerer… last night I got the itch to do something nerdy, so I actually set gitlab up to use an external postgresql database on the same server, and then I set up replication to a different database on a linode. This is similar to the set up gitlab itself uses (it failing is indirectly what led to the gitlab data loss incident of 2017)…

I know of that setting. Problem is, it’s not particularly suited for remote backups (I think).

you could get geeky and write a script that beams the backup file to the remote server, and then stick a cron job in there to do it automatically…