I am examining the possibilities and the hardware requirements of a server. The server will have a Java-based webapp running Tomcat 7.0 with MySQL database on Debian 6.0 (stable). This server needs to handle a minimum of 10 concurrent connections. However, mostly it will be much less than that; in other words, it will never have more than 50 connections at any given time yet most times it will be on average of 2 to 5 connections. The average user will spend about 30 to 60 minutes every time he or she users the services and about 20 to 40 times total in a year. Total number of yearly users will be about 60 and 80. However, there will be temporarily users, who will only use the the application once. The number of these users will be over 100.
The application will take input from the user, generate a PDF, and email it to the user. The user input includes: uploading images, text data, and other minor types of data (ints/booleans/...etc).
Is there any certain hardware requirements or optional? (e.g. required: 1 GB RAM, optional: 4 GB RAM) I would like to know the RAM required as well as the CPU speed and number of cores. Moreover, it would be great if you can specify other features.