Difference between revisions of "Suggested Server Requirements"
(Turns out I was wrong; 32-bit Perls *can* handle 64-bit ints if compiled with USE_64_BIT_INT, just not in a single processor operation.) |
Foxfirefey (Talk | contribs) (→Suitable hosting) |
||
(9 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | This document is designed to outline our resources on setting up the DW code on your server. There is, currently, a high expectation of "tech savvy." If you do not know what sudo is or how to get a root console, then you probably are going to get pretty lost in this. Instead, you may want to request a [[Dreamhacks]] account. | + | This document is designed to outline our resources on setting up the DW code on your server. There is, currently, a high expectation of "tech savvy." If you do not know what sudo is or how to get a root console, then you probably are going to get pretty lost in this. Instead, you may want to request a [[Dreamhacks|Dreamhack]] account. |
Doesn't mean you shouldn't try, but forewarned is forearmed! | Doesn't mean you shouldn't try, but forewarned is forearmed! | ||
− | Help can be found on [[IRC]] or on | + | Help can be found on [[IRC]] or on <dwcomm>dw_dev</dwcomm>. There is also [[Dreamwidth Scratch Installation]]. |
== Requirements == | == Requirements == | ||
Line 11: | Line 11: | ||
=== Linux based server === | === Linux based server === | ||
− | We are presently using Ubuntu. This may stay or become Debian or Centos at some point, that's undecided. But for now, Ubuntu is the supported distro. If you use anything else, you will need to be familiar enough with the differences to work out any different steps on your own. (But we'd love to hear success stories and get documentation for other ones!) | + | We are presently using Ubuntu 16.4. Later versions may or may not work, see https://github.com/dreamwidth/dw-free/issues/2248. This may stay or become Debian or Centos at some point, that's undecided. But for now, Ubuntu is the supported distro. If you use anything else, you will need to be familiar enough with the differences to work out any different steps on your own. (But we'd love to hear success stories and get documentation for other ones!) |
− | + | ||
− | + | ||
− | + | ||
=== 64-bit (x86_64 typically, NOT i686/i386) === | === 64-bit (x86_64 typically, NOT i686/i386) === | ||
Line 38: | Line 35: | ||
=== MySQL === | === MySQL === | ||
− | You will need a MySQL database. It can be local or remote, it doesn't matter really. As long as you have the ability to create/drop/alter tables in a | + | You will need a MySQL database. It can be local or remote, it doesn't matter really. As long as you have the ability to create/drop/alter tables in a database, that's what matters. |
− | == | + | === Perl 5.10 === |
− | + | As of July 2012, [http://dw-dev.dreamwidth.org/120658.html Perl 5.10 or better is required] to run the Dreamwidth codebase. Hopefully, not much of an issue in practice -- nowadays, any machine you can find that's still running Perl 5.8 or before is likely to be quite decrepit indeed. | |
+ | |||
+ | == Suitable hosting == | ||
− | + | These hosts have $5 a month plans that will Dreamwidth code with: Ubuntu 16.04 64-bit, 1GB of RAM, and full root access: | |
− | + | ||
− | + | * [http://www.linode.com/ Linode] -- used by <ljuser>afuna</ljuser>, <ljuser>exor674</ljuser>. | |
+ | * [https://www.digitalocean.com/ Digital Ocean] -- used by <ljuser>foxfirefey</ljuser> | ||
[[Category: Development]] | [[Category: Development]] | ||
[[Category: Dreamwidth Installation]] | [[Category: Dreamwidth Installation]] |
Latest revision as of 00:04, 5 December 2018
This document is designed to outline our resources on setting up the DW code on your server. There is, currently, a high expectation of "tech savvy." If you do not know what sudo is or how to get a root console, then you probably are going to get pretty lost in this. Instead, you may want to request a Dreamhack account.
Doesn't mean you shouldn't try, but forewarned is forearmed!
Help can be found on IRC or on dw_dev. There is also Dreamwidth Scratch Installation.
Contents
Requirements
Here is what you'll want for a development environment. Sure, you can probably get away with less or different, but that's not what we're going to support. The DW code is known to work with the following. But we'd love to hear of your results using something else.
Linux based server
We are presently using Ubuntu 16.4. Later versions may or may not work, see https://github.com/dreamwidth/dw-free/issues/2248. This may stay or become Debian or Centos at some point, that's undecided. But for now, Ubuntu is the supported distro. If you use anything else, you will need to be familiar enough with the differences to work out any different steps on your own. (But we'd love to hear success stories and get documentation for other ones!)
64-bit (x86_64 typically, NOT i686/i386)
This is something you can probably get away without doing, but you'll be unable to test some things and others might be a bit wonky. Notably, you need the 64 bit version of Perl in order for the pack/unpack operations to work for memcache.
But if you absolutely do not have a 64 bit system, then you might still be okay. Don't use memcache and don't try to use more than 30 friend groups and you shouldn't run into any big issues. You will also have to change the pack functions in Entry.pm from using NNNQN to NNNLN to avoid a "Invalid type 'Q' in pack" error when posting to a journal.
If you're not sure whether you have a 64 bit system or not, check out the collection of tips on this page: http://www.stata.com/products/64bit.html
512mb RAM
I have gotten away with less. Depends on how much traffic you expect and what else you are running on the box. Also, if you intend on running TheSchwartz workers or not. If you do not, and you only run the web site code, then it will probably work on 256.
Dedicated!
The LJ/DW code is pretty heavy, and doesn't like other things running. You should expect that if you are not that technical, you will need a fairly blank server to run it on. But if you are technical you can do some pretty convoluted setups... (This one is more of a recommendation and not a hard requirement.)
root
If you do not have root on the box, you are in for a rough road. Sure, the code doesn't need root privileges to run. But there are a lot of libraries that need to be installed on the system. If you are using a shared development environment where the owner has installed the modules for you, then you should be fine, but keep in mind that you will not be able to run the code on the standard HTTP port (80) as a non-root user.
MySQL
You will need a MySQL database. It can be local or remote, it doesn't matter really. As long as you have the ability to create/drop/alter tables in a database, that's what matters.
Perl 5.10
As of July 2012, Perl 5.10 or better is required to run the Dreamwidth codebase. Hopefully, not much of an issue in practice -- nowadays, any machine you can find that's still running Perl 5.8 or before is likely to be quite decrepit indeed.
Suitable hosting
These hosts have $5 a month plans that will Dreamwidth code with: Ubuntu 16.04 64-bit, 1GB of RAM, and full root access:
- Linode -- used by afuna, exor674.
- Digital Ocean -- used by foxfirefey